<!DOCTYPE html>
<html lang="en-US">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width,initial-scale=1">
    <title>每天一篇SCI论文 | 小熊的技术文档</title>
    <meta name="generator" content="VuePress 1.8.2">
    <link rel="icon" href="/fav.ico">
    <link rel="stylesheet" href="/css/katex.min.css">
    <link rel="stylesheet" href="/css/github-markdown.min.css">
    <meta name="description" content="衣带渐宽终不悔，为伊消得人憔悴">
    
    <link rel="preload" href="/assets/css/0.styles.e6449353.css" as="style"><link rel="preload" href="/assets/js/app.9e067b79.js" as="script"><link rel="preload" href="/assets/js/2.983eb755.js" as="script"><link rel="preload" href="/assets/js/52.4daa8322.js" as="script"><link rel="prefetch" href="/assets/js/10.79548333.js"><link rel="prefetch" href="/assets/js/11.31600f80.js"><link rel="prefetch" href="/assets/js/12.62bd3528.js"><link rel="prefetch" href="/assets/js/13.de8b1ace.js"><link rel="prefetch" href="/assets/js/14.f5db1e75.js"><link rel="prefetch" href="/assets/js/15.bf827d4d.js"><link rel="prefetch" href="/assets/js/16.cc9a1a73.js"><link rel="prefetch" href="/assets/js/17.2cfaefeb.js"><link rel="prefetch" href="/assets/js/18.3af7782b.js"><link rel="prefetch" href="/assets/js/19.639f7e7b.js"><link rel="prefetch" href="/assets/js/20.dc862f59.js"><link rel="prefetch" href="/assets/js/21.916e1685.js"><link rel="prefetch" href="/assets/js/22.d7a955f4.js"><link rel="prefetch" href="/assets/js/23.078391ef.js"><link rel="prefetch" href="/assets/js/24.bb460a5a.js"><link rel="prefetch" href="/assets/js/25.d69f2326.js"><link rel="prefetch" href="/assets/js/26.6da7ea48.js"><link rel="prefetch" href="/assets/js/27.82e23d91.js"><link rel="prefetch" href="/assets/js/28.9073bbec.js"><link rel="prefetch" href="/assets/js/29.639259a4.js"><link rel="prefetch" href="/assets/js/3.e594e5b2.js"><link rel="prefetch" href="/assets/js/30.b49c622d.js"><link rel="prefetch" href="/assets/js/31.92f6c8b3.js"><link rel="prefetch" href="/assets/js/32.42419088.js"><link rel="prefetch" href="/assets/js/33.c82e2ab8.js"><link rel="prefetch" href="/assets/js/34.381de37e.js"><link rel="prefetch" href="/assets/js/35.5e86d478.js"><link rel="prefetch" href="/assets/js/36.31f218ce.js"><link rel="prefetch" href="/assets/js/37.0d287b3f.js"><link rel="prefetch" href="/assets/js/38.1324cf44.js"><link rel="prefetch" href="/assets/js/39.de6bdb51.js"><link rel="prefetch" href="/assets/js/4.440c4dd9.js"><link rel="prefetch" href="/assets/js/40.a22c9c27.js"><link rel="prefetch" href="/assets/js/41.4637d617.js"><link rel="prefetch" href="/assets/js/42.db815e2b.js"><link rel="prefetch" href="/assets/js/43.f0955a92.js"><link rel="prefetch" href="/assets/js/44.7d5faddf.js"><link rel="prefetch" href="/assets/js/45.a88ffc33.js"><link rel="prefetch" href="/assets/js/46.883caa71.js"><link rel="prefetch" href="/assets/js/47.6f2cfd60.js"><link rel="prefetch" href="/assets/js/48.ea25654e.js"><link rel="prefetch" href="/assets/js/49.f38c23a0.js"><link rel="prefetch" href="/assets/js/5.e8844f36.js"><link rel="prefetch" href="/assets/js/50.e03dd8e9.js"><link rel="prefetch" href="/assets/js/51.f6160d52.js"><link rel="prefetch" href="/assets/js/53.b30992e9.js"><link rel="prefetch" href="/assets/js/54.209f17e1.js"><link rel="prefetch" href="/assets/js/55.4f1dd95b.js"><link rel="prefetch" href="/assets/js/56.147ea3e8.js"><link rel="prefetch" href="/assets/js/57.5823e0e2.js"><link rel="prefetch" href="/assets/js/58.772320f9.js"><link rel="prefetch" href="/assets/js/59.5ab55a80.js"><link rel="prefetch" href="/assets/js/6.54e1cc95.js"><link rel="prefetch" href="/assets/js/60.b47b75bb.js"><link rel="prefetch" href="/assets/js/61.0cd5a012.js"><link rel="prefetch" href="/assets/js/62.35eb5453.js"><link rel="prefetch" href="/assets/js/63.d31f2118.js"><link rel="prefetch" href="/assets/js/64.03d35d7c.js"><link rel="prefetch" href="/assets/js/65.8bdc633f.js"><link rel="prefetch" href="/assets/js/66.dbbe8867.js"><link rel="prefetch" href="/assets/js/67.228613b5.js"><link rel="prefetch" href="/assets/js/68.d10a2687.js"><link rel="prefetch" href="/assets/js/69.7903847f.js"><link rel="prefetch" href="/assets/js/7.f5ab00eb.js"><link rel="prefetch" href="/assets/js/70.11ee4e27.js"><link rel="prefetch" href="/assets/js/8.95b39934.js"><link rel="prefetch" href="/assets/js/9.26cfd48c.js">
    <link rel="stylesheet" href="/assets/css/0.styles.e6449353.css">
  </head>
  <body>
    <div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/" class="home-link router-link-active"><!----> <span class="site-name">小熊的技术文档</span></a> <div class="links"><div class="search-box"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="/front-end/" class="nav-link">
  🎨前端
</a></div><div class="nav-item"><a href="/back-end/" class="nav-link">
  💻后端
</a></div><div class="nav-item"><a href="/practice/" class="nav-link">
  🚀实战
</a></div><div class="nav-item"><a href="/office/" class="nav-link">
  🏢办公
</a></div><div class="nav-item"><a href="/general/" class="nav-link">
  🍓通用
</a></div><div class="nav-item"><a href="/paper/" class="nav-link router-link-active">
  🐸论文
</a></div><div class="nav-item"><a href="/general/fast.html" class="nav-link">
  ⚡快速笔记
</a></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="🦉近期重点" class="dropdown-title"><span class="title">🦉近期重点</span> <span class="arrow down"></span></button> <button type="button" aria-label="🦉近期重点" class="mobile-dropdown-title"><span class="title">🦉近期重点</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/back-end/python.html" class="nav-link">
  🐇python常用模块
</a></li><li class="dropdown-item"><!----> <a href="/practice/zrender.html" class="nav-link">
  🌹zrender源码解析
</a></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="⭐️资源" class="dropdown-title"><span class="title">⭐️资源</span> <span class="arrow down"></span></button> <button type="button" aria-label="⭐️资源" class="mobile-dropdown-title"><span class="title">⭐️资源</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="https://www.birdiesearch.com/" target="_blank" rel="noopener noreferrer" class="nav-link external">
  小鸟搜索
  <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></li><li class="dropdown-item"><!----> <a href="https://salttiger.com/" target="_blank" rel="noopener noreferrer" class="nav-link external">
  每天一本编程书
  <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></li><li class="dropdown-item"><!----> <a href="https://gitee.com/docmirror/dev-sidecar" target="_blank" rel="noopener noreferrer" class="nav-link external">
  开发者边车
  <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></li></ul></div></div> <!----></nav></div></header> <div class="sidebar-mask"></div> <aside class="sidebar"><nav class="nav-links"><div class="nav-item"><a href="/front-end/" class="nav-link">
  🎨前端
</a></div><div class="nav-item"><a href="/back-end/" class="nav-link">
  💻后端
</a></div><div class="nav-item"><a href="/practice/" class="nav-link">
  🚀实战
</a></div><div class="nav-item"><a href="/office/" class="nav-link">
  🏢办公
</a></div><div class="nav-item"><a href="/general/" class="nav-link">
  🍓通用
</a></div><div class="nav-item"><a href="/paper/" class="nav-link router-link-active">
  🐸论文
</a></div><div class="nav-item"><a href="/general/fast.html" class="nav-link">
  ⚡快速笔记
</a></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="🦉近期重点" class="dropdown-title"><span class="title">🦉近期重点</span> <span class="arrow down"></span></button> <button type="button" aria-label="🦉近期重点" class="mobile-dropdown-title"><span class="title">🦉近期重点</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/back-end/python.html" class="nav-link">
  🐇python常用模块
</a></li><li class="dropdown-item"><!----> <a href="/practice/zrender.html" class="nav-link">
  🌹zrender源码解析
</a></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="⭐️资源" class="dropdown-title"><span class="title">⭐️资源</span> <span class="arrow down"></span></button> <button type="button" aria-label="⭐️资源" class="mobile-dropdown-title"><span class="title">⭐️资源</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="https://www.birdiesearch.com/" target="_blank" rel="noopener noreferrer" class="nav-link external">
  小鸟搜索
  <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></li><li class="dropdown-item"><!----> <a href="https://salttiger.com/" target="_blank" rel="noopener noreferrer" class="nav-link external">
  每天一本编程书
  <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></li><li class="dropdown-item"><!----> <a href="https://gitee.com/docmirror/dev-sidecar" target="_blank" rel="noopener noreferrer" class="nav-link external">
  开发者边车
  <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></li></ul></div></div> <!----></nav>  <ul class="sidebar-links"><li><a href="/paper/writing.html" class="sidebar-link">论文写作</a></li><li><a href="/paper/search.html" class="sidebar-link">无人机搜索</a></li><li><a href="/paper/defense.html" class="sidebar-link">防御无人机</a></li><li><a href="/paper/cover.html" class="sidebar-link">覆盖问题</a></li><li><a href="/paper/2020Auguest.html" class="sidebar-link">2020年8月归档</a></li><li><a href="/paper/daily.html" aria-current="page" class="active sidebar-link">每天一篇SCI论文</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/paper/daily.html#_2019🌖-基于深度强化学习的非线性多智能体目标包围控制" class="sidebar-link">[2019🌖] 基于深度强化学习的非线性多智能体目标包围控制</a></li><li class="sidebar-sub-header"><a href="/paper/daily.html#_2019🌗-空中机器人轨迹跟踪-一种基于优化的规划与控制方法" class="sidebar-link">[2019🌗] 空中机器人轨迹跟踪：一种基于优化的规划与控制方法</a></li><li class="sidebar-sub-header"><a href="/paper/daily.html#_2019🌗-空中荒野搜救与地面支援" class="sidebar-link">[2019🌗]空中荒野搜救与地面支援</a></li><li class="sidebar-sub-header"><a href="/paper/daily.html#_2019-多目标协同无人机地面攻击策略研究" class="sidebar-link">[2019]多目标协同无人机地面攻击策略研究</a></li><li class="sidebar-sub-header"><a href="/paper/daily.html#_2019🌖-基于马尔可夫模型的多无人机轨迹与任务协同规划" class="sidebar-link">[2019🌖]基于马尔可夫模型的多无人机轨迹与任务协同规划</a></li><li class="sidebar-sub-header"><a href="/paper/daily.html#_2017🌗-无人机优先区域监视的启发式学习算法" class="sidebar-link">[2017🌗]无人机优先区域监视的启发式学习算法</a></li><li class="sidebar-sub-header"><a href="/paper/daily.html#_2015🌘-基于回归动态规划的小型无人机目标跟踪随机优化协调" class="sidebar-link">[2015🌘]基于回归动态规划的小型无人机目标跟踪随机优化协调</a></li><li class="sidebar-sub-header"><a href="/paper/daily.html#_2014🌕-无人机搜救覆盖算法研究" class="sidebar-link">[2014🌕]无人机搜救覆盖算法研究</a></li><li class="sidebar-sub-header"><a href="/paper/daily.html#_2011-多机器人连续覆盖的最小算法" class="sidebar-link">[2011]多机器人连续覆盖的最小算法</a></li><li class="sidebar-sub-header"><a href="/paper/daily.html#_2005🌕-基于团队理论的多无人机任务分配" class="sidebar-link">[2005🌕]基于团队理论的多无人机任务分配</a></li><li class="sidebar-sub-header"><a href="/paper/daily.html#_2019-基于共生生物搜索算法的多无人机异构目标侦察任务分配" class="sidebar-link">[2019]基于共生生物搜索算法的多无人机异构目标侦察任务分配</a></li><li class="sidebar-sub-header"><a href="/paper/daily.html#_2017-不确定环境下基于灰狼优化的贝叶斯多无人机路径规划" class="sidebar-link">[2017]不确定环境下基于灰狼优化的贝叶斯多无人机路径规划</a></li><li class="sidebar-sub-header"><a href="/paper/daily.html#_2017-几何复杂环境下质量感知无人机覆盖和路径规划" class="sidebar-link">[2017]几何复杂环境下质量感知无人机覆盖和路径规划</a></li><li class="sidebar-sub-header"><a href="/paper/daily.html#_2007-基于机会学习的多无人机协同搜索" class="sidebar-link">[2007]基于机会学习的多无人机协同搜索</a></li><li class="sidebar-sub-header"><a href="/paper/daily.html#_2013-基于时间规划的自主搜索与跟踪" class="sidebar-link">[2013]基于时间规划的自主搜索与跟踪</a></li></ul></li><li><a href="/paper/technology.html" class="sidebar-link">国防科技框架</a></li><li><a href="/paper/strategy.html" class="sidebar-link">国防科技策略2030</a></li><li><a href="/paper/mpc.html" class="sidebar-link">模型预测控制</a></li><li><a href="/paper/MARL.html" class="sidebar-link">多智能体强化学习论文集</a></li><li><a href="/paper/UAV.html" class="sidebar-link">无人机</a></li><li><a href="/paper/clustering.html" class="sidebar-link">常用聚类算法</a></li></ul> </aside> <main class="page"> <div class="theme-default-content content__default"><h1 id="每天一篇sci论文"><a href="#每天一篇sci论文" class="header-anchor">#</a> 每天一篇SCI论文</h1> <blockquote><p>从2020年8月8日开始，周一到周五，每天略读一篇SCI论文，不用全看，至少把<strong>摘要</strong>、<strong>图片</strong>、<strong>结论</strong>看完，然后周末着重从5篇论文里面分析一篇。时间坚持到今年年底，即2020-12-31日截止，其中不同颜色的心形表示论文的不同重要性，重要性由高到低分别是🌕、🌖、🌗、🌘、🌑，也可以用👨‍👩‍👧‍👦，👪，👫，🕺表示优先级。使用正则表达式<code>\[\d{1,2}[-，,]?.*?\]</code>可以匹配所有形如[1], [4-6], [3,5]表示的参考文献，方便统一替换。在vscode中使用正则<code>([\w}])）</code>、<code>（([\w}])</code>匹配所有英文后面、前面的中文括号，然后替换为<code>$1)</code>、<code>($1</code>。</p></blockquote> <p>前期看完的论文归档：</p> <ul><li><a href="/paper/2020Auguest.html">2020年8月论文</a></li></ul> <h2 id="_2019🌖-基于深度强化学习的非线性多智能体目标包围控制"><a href="#_2019🌖-基于深度强化学习的非线性多智能体目标包围控制" class="header-anchor">#</a> [2019🌖] 基于深度强化学习的非线性多智能体目标包围控制</h2> <p>9月1日阅，论文名称：Multi-robot Target Encirclement Control with Collision Avoidance via Deep Reinforcement Learning，《Journal of Intelligent &amp; Robotic Systems》，作者来自<em>国防科大</em>，<a href="https://wws.lanzous.com/ij6oVg9vm0d" target="_blank" rel="noopener noreferrer">论文查看<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a>。</p> <blockquote><p><strong>摘要</strong>：本文研究了基于深度强化学习的多机器人系统目标包围控制问题。围捕控制是受海豚诱捕鱼类的包围行为启发，主要是强制机器人在目标周围形成一种捕获编队模式，可广泛应用于覆盖、巡逻、护航等诸多领域。与传统方法不同，我们提出了一种深度强化学习多机器人目标包围队形控制框架，结合了深层神经网络和确定性策略梯度算法的优点，免除了建立控制模型和设计控制律的复杂工作。该方法在连续动作空间中为每个机器人提供了一个分布式控制结构，仅依赖于局部队友的信息。此外，每个时间步的行为输出由其独立的网络决定。另外，机器人和运动目标可以同时训练。这样既能抑制合作又能抑制竞争，实验结果验证了算法的有效性。</p></blockquote> <p>关键词：<em>Multi-robot</em>（多机器人）；<em>Deep reinforcement learning</em>（深度强化学习）；<em>Encirclement control</em>（包围控制）；<em>Collision avoidance</em>（避撞）</p> <p><strong>第1节 引言</strong>，多机器人系统由于其广泛的应用，如协同巡逻、任务分配、目标跟踪与导航、自主搜索与救援，越来越受到研究者的关注。在这些研究课题中，多机器人系统的包围控制因其在民用和军事领域的实用价值而引起了众多研究者的兴趣。应用范围包括使用多个传感器或传感器车载机器人进行侦察和监视，多个无人机捕获敌方目标，由武装机器人车辆（ARV）保护无人地面车辆。上述应用的核心问题是控制一组智能无人平台形成预期编队，包围特定目标，最终形成一个包围圈。</p> <p>根据控制结构的不同，以往对多机器人目标包围的研究大致分为两类：集中式和分布式。多机器人系统中的集中式方法依赖于一个中心机器人，它充当全局控制节点，对所有机器人进行任务分配、轨迹规划甚至运动控制。在集中控制下，通常可以使用离线或在线优化算法来获得全局最优控制方案。但前提条件是充分获得所有机器人的完整知识和机器人之间的完美沟通，这在实践中并不总是可行的。</p> <p>通常情况下，集中式方法很难扩展到大量的机器人，而且中心节点发生故障时容易导致整个机器人系统瘫痪。</p> <p>相比之下，分布式方法具有集中式方法的优点，被研究人员广泛应用。在现有的有关这一问题的文献中，基于图论和经典控制理论的方法得到了大多数研究者的青睐，因为机器人连接的拓扑可以用一个图来精确地描述。然而，它有一个明显的局限性，即它高度依赖于精确的物理模式，而这些模式在实践中通常很难获得。</p> <p>由于传统方法的局限性，我们采用强化学习来克服需要精确模型的缺点。在这项工作中，我们提出了一种基于深度确定性策略梯度算法和允许多个机器人在连续空间中跟踪和包围目标的神经网络的强化学习算法。此外，本文还考虑了多机器人系统的合作与竞争情形。主要贡献包括四个方面：（1）结合深层神经网络和确定性策略梯度算法的优点，提出了一种强化学习框架；（2）实现了连续动作和状态空间的多机器人动态编队控制；（3） 我们的算法为每个机器人提供了一个只依赖本地队友信息的分布式控制体系结构，并且每个时间步的行为输出仅由其自身独立的网络决定；（4）该方法适用于混合合作和竞争的情况。</p> <p>第二部分简要回顾了现有的多机器人目标包围与强化学习的研究现状。第三节介绍了多机器人系统包围目标问题的求解方法。第四节介绍了目标深度包围问题的学习框架。第五部分基于<a href="https://nubot.trustie.net" target="_blank" rel="noopener noreferrer">nubot团队<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a>开发的多机器人仿真平台，通过三次仿真验证了算法的有效性。最后一部分对论文进行了总结，指出了具有潜在意义的研究方向。</p> <p><strong>第3节 包围队形</strong>，假设二维空间中有<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>n</mi></mrow><annotation encoding="application/x-tex">n</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.43056em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit">n</span></span></span></span>个（<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>n</mi><mo>&gt;</mo><mn>2</mn></mrow><annotation encoding="application/x-tex">n&gt;2</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.64444em;"></span><span class="strut bottom" style="height:0.68354em;vertical-align:-0.0391em;"></span><span class="base textstyle uncramped"><span class="mord mathit">n</span><span class="mrel">&gt;</span><span class="mord mathrm">2</span></span></span></span>）机器人，用<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>r</mi><mn>1</mn></msub><mo separator="true">,</mo><msub><mi>r</mi><mn>2</mn></msub><mo separator="true">,</mo><mo>⋯</mo><mo separator="true">,</mo><msub><mi>r</mi><mi>n</mi></msub></mrow><annotation encoding="application/x-tex">r_1, r_2, \cdots ,r_n</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.625em;vertical-align:-0.19444em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit" style="margin-right:0.02778em;">r</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.02778em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathrm">1</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mpunct">,</span><span class="mord"><span class="mord mathit" style="margin-right:0.02778em;">r</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.02778em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathrm">2</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mpunct">,</span><span class="minner">⋯</span><span class="mpunct">,</span><span class="mord"><span class="mord mathit" style="margin-right:0.02778em;">r</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.02778em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">n</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>表示。该多机器人系统的任务是形成一个圆形编队，将静止或移动的目标<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>T</mi></mrow><annotation encoding="application/x-tex">T</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.68333em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.13889em;">T</span></span></span></span>包围在同一平面上。为了实现对目标的包围，多机器人编队应尽可能满足以下要求：</p> <ul><li>队形应为一个凸多边形，其中包含由多个机器人组成的目标；</li> <li>无论目标是静止还是移动，多机器人编队都应能进行调整根据目标的速度确定位置，并始终将目标保持在队形内；</li> <li>在队形上，凸多边形的任何顶点都可以被群中任意一个机器人占据。</li></ul> <p>根据机器人的数量和编队多边形的形状，有多种队形可以满足上述要求。然而，本文的主要目标是包围目标并使相邻两个机器人之间的缺口最小化。</p> <p>基于这个初衷，我们探索了一种多机器人编队结构，如下图所示，其中每个机器人都以目标为中心进行包围运动。此外，根据目标的动态性能，应考虑设计数量可变的多机器人编队控制框架。</p> <p><img src="https://s1.ax1x.com/2020/09/02/dzGQhQ.png" alt="包围队形"></p> <p>为了简单起见，我们假设每个机器人和目标的几何体被建模为一个具有实际形状半径和安全半径的圆盘。机器人和目标均被视为具有完整约束的动力学系统，即机器人可以在二维平面上自由地向任意方向运动。</p> <p>我们假设每个机器人都能获得全局目标信息，但只能从相邻机器人那里感知局部信息，而不是所有机器人。因此，需要一种分布式编队控制体系结构，而不是集中式体系结构。</p> <p>为了便于表达编队的相关属性，我们以目标<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>H</mi></mrow><annotation encoding="application/x-tex">H</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.68333em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.08125em;">H</span></span></span></span>为中心，在目标体参考坐标系B的极坐标系下描述了包围编队的具体特征。根据机器人在极坐标中的相位，按逆时针方向对机器人进行排序和编号，如下图所示。</p> <p><img src="https://s1.ax1x.com/2020/09/02/dzGwh4.png" alt="机器人在极坐标系中的位置"></p> <p><strong>结论</strong>：在这项工作中，我们提出了一个强化学习框架，它结合了确定性策略梯度算法和神经网络的优点，允许多个机器人协作完成连续空间中的目标包围。我们的算法不受复杂的控制模型推导的限制，这通常是大多数传统解决方案所必需的。</p> <p>在该算法中，每个机器人都有自己独立的训练网络，每个时间步的行为输出由独立的策略决定。在训练或测试过程中，整个系统没有全局的中央控制网络，因此我们的算法可以看作是分布式的。</p> <h2 id="_2019🌗-空中机器人轨迹跟踪-一种基于优化的规划与控制方法"><a href="#_2019🌗-空中机器人轨迹跟踪-一种基于优化的规划与控制方法" class="header-anchor">#</a> [2019🌗] 空中机器人轨迹跟踪：一种基于优化的规划与控制方法</h2> <p>9月2日阅，论文名称：Trajectory Tracking for Aerial Robots: an Optimization-Based Planning and Control Approach，《Journal of Intelligent &amp; Robotic Systems》，作者来自<em>卢森堡大学</em>，<a href="https://wws.lanzous.com/iK1htgaymmj" target="_blank" rel="noopener noreferrer">论文查看<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a>。</p> <blockquote><p><strong>摘要</strong>：在这项工作中，我们提出了一个基于优化的轨迹跟踪解决方案，为多转子空中机器人提供了一个几何可行的路径。轨迹规划器生成一个最短时间的运动学和动态可行轨迹，不仅包括标准限制，如轨迹的连续性和限制、航路点的约束以及计划轨迹与给定路径之间的最大距离，同时，基于其动力学模型对空中机器人的执行机构进行了限制，保证了规划轨迹的可实现性。我们新颖的紧凑型多阶段轨迹定义，作为两种不同类型多项式的集合，提供了轨迹的更高语义编码，允许计算最优解，但遵循预定义的简单轮廓。模型预测控制器保证了空中机器人以最小偏差跟踪规划轨迹。它的新公式将计划轨迹的所有量值（即位置和航向、速度和加速度）作为输入来生成控制命令，通过实验室实际飞行证明，与仅使用计划位置和航向的控制器相比，跟踪性能有所改善。同时，我们也讨论了二维空间和三维空间中常用的两个方向的差分。我们证明了四元数和误差四元数与其他公式相比有一些优点。</p></blockquote> <p>关键词：<em>Trajectory tracking</em>（轨迹跟踪），<em>Trajectory planning</em>（轨迹规划），<em>Aerial robotics</em>（空中机器人学），<em>Multirotor</em>（多旋翼），<em>UAV</em>（无人机），<em>MAV</em>（微型飞行器），<em>Remotely operated vehicles</em>（遥控飞行器），<em>Mobile robots</em>（移动机器人），<em>Model predictive control</em>（模型预测控制），<em>Optimization</em>（优化）</p> <p><strong>第1节 引言</strong>。<em>1.1 动机</em>，多项研究[57]预测了多旋翼空中机器人（也称为无人机或无人机，UAV）的大量民用应用，例如它们在智能城市的集成[40]或空中检查[9]等。这些应用程序中的大多数要么正在作为原型进行研究和开发，要么仍然是简单的概念。只有少数几个已经成为现实，一些服务提供商公司正在以遥控方式、低自主性的方式利用多旋翼飞行器进行商业开发。尽管显示出巨大的潜力，但要使大多数应用程序成为现实，以及提高现有应用程序的效率、可用性和安全性，还需要高度自治。</p> <p>全自主体系结构和软件框架（如Aerostack[48，49]的最新进展表明，在日常使用中完全集成空中机器人需要高度的自主性[11]。然而，仍然有许多开放的研究问题限制了空中机器人的使用。两个重要的是运动规划[19]和控制[4，35]。</p> <p>机器人学中有两种不同的运动控制任务，在文献中有时会被混淆，需要加以区分：路径跟踪和轨迹跟踪。在路径跟踪中，机器人需要收敛到一条没有时间规律的指定路径上。另一方面，在轨迹跟踪中，机器人必须到达并跟随一个时间参数化的参考。因此，轨迹被定义为时间参数化的参考（即具有相关时序律的几何路径）。</p> <p>同样，需要区分两种不同的运动规划任务：路径规划和轨迹规划。在路径规划中，目标是生成几何上可行的（例如无碰撞）路径，即不需要时间参数化。在轨迹规划中，不仅要考虑几何可行性，还要考虑运动学和动力学极限来生成轨迹。</p> <p>为了解决运动规划与控制问题，我们采用文献[26,38,46,51]中常见的方法，将三个不同的部分组合在一起：（1）无碰撞几何路径规划器，（2）考虑运动学限制，从先前给定的路径计算可行轨迹的轨迹规划器并建立了机器人的动力学模型，以及（3）轨迹跟踪控制器。</p> <p><em>1.2 问题建模和目标</em>，在这项工作中，我们假设有一个几何上可行的（例如无碰撞）路径由一个几何路径规划器给出，例如[51，52]。该路径<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>P</mi></mrow><annotation encoding="application/x-tex">P</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.68333em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.13889em;">P</span></span></span></span>被定义为一组离散的航路点<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>W</mi><mi>i</mi></msub></mrow><annotation encoding="application/x-tex">W_i</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit" style="margin-right:0.13889em;">W</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.13889em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>，对空中机器人的期望位置和航向进行编码，如图1所示。机器人的初始位置被认为是第一个航路点。</p> <p><img src="https://s1.ax1x.com/2020/09/03/w9RrCD.png" alt="问题的形成"><br>
图1 问题的形成。所需路径用一条黑色虚线表示，通过对所需位置（黑色圆圈）和所需航向（紫色箭头）进行编码的航路点。计划的轨迹用蓝色虚线表示</p> <p>轨迹规划器必须根据效率准则，生成轨迹跟踪控制器作为参考的轨迹<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>L</mi></mrow><annotation encoding="application/x-tex">L</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.68333em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit">L</span></span></span></span>。该轨迹由时间与空中机器人的位置、航向及其所有导数的期望值之间的关系组成。轨迹必须通过航路点，并且必须遵循给定路径，在规划轨迹和给定路径之间有用户定义的有界最大距离，以避免与环境障碍物发生碰撞，这是面向工业应用的要求。它还必须是可行的（运动和动态）的机器人。<br>
轨迹跟踪控制器负责生成控制命令，以确保生成的轨迹<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>L</mi></mrow><annotation encoding="application/x-tex">L</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.68333em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit">L</span></span></span></span>被空中机器人以最小偏差跟踪，并通过估计的空中机器人状态来校正干扰的影响。</p> <p><strong>第2节 相关工作</strong>，包括轨迹规划和轨迹跟踪控制。</p> <p><strong>第3节 三维空间SO(3)中旋转的表示</strong>，在这一节中，我们编译了一些关于三维空间<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>S</mi><mi>O</mi><mo>(</mo><mn>3</mn><mo>)</mo></mrow><annotation encoding="application/x-tex">SO(3)</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.05764em;">S</span><span class="mord mathit" style="margin-right:0.02778em;">O</span><span class="mopen">(</span><span class="mord mathrm">3</span><span class="mclose">)</span></span></span></span>中方向表示的数学性质。这里介绍的大部分信息都是从多个来源中仔细提取和总结出来的，这些来源深刻地解决了前面提到的问题。</p> <p><em>3.1 刚体的方向</em><br> <em>3.2 两个方向的差异</em><br> <em>3.3 两个方向之间的标量误差</em><br> <em>3.4 方向的时间导数</em></p> <p><strong>第4节 二维空间SO(2)中旋转的表示</strong>,在只考虑偏航角的情况下，不考虑其他两个角的值，三维空间<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>S</mi><mi>O</mi><mo>(</mo><mn>2</mn><mo>)</mo></mrow><annotation encoding="application/x-tex">SO(2)</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.05764em;">S</span><span class="mord mathit" style="margin-right:0.02778em;">O</span><span class="mopen">(</span><span class="mord mathrm">2</span><span class="mclose">)</span></span></span></span>可以简化为二维空间<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>S</mi><mi>O</mi><mo>(</mo><mn>2</mn><mo>)</mo></mrow><annotation encoding="application/x-tex">SO(2)</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.05764em;">S</span><span class="mord mathit" style="margin-right:0.02778em;">O</span><span class="mopen">(</span><span class="mord mathrm">2</span><span class="mclose">)</span></span></span></span>。如第5节所述，当使用多转子空中机器人的一些微分平面度特性时，就是这种情况。<br>
在这一节中，我们通过改编第3节中发展的性质，提出了一些与<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>S</mi><mi>O</mi><mo>(</mo><mn>2</mn><mo>)</mo></mrow><annotation encoding="application/x-tex">SO(2)</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.05764em;">S</span><span class="mord mathit" style="margin-right:0.02778em;">O</span><span class="mopen">(</span><span class="mord mathrm">2</span><span class="mclose">)</span></span></span></span>中取向表示有关的数学性质。本节介绍的数学工具代表了处理方向时以下各节的基础。</p> <p><strong>第5节 空中机器人模型</strong>，包括参考坐标系、动力学模型、差动平面度、控制命令参考。</p> <p><strong>第6节 轨迹定义</strong>，包括轨迹概述、轨迹的连续性、轨迹的简洁描述、建议对轨迹进行详细描述。</p> <p><strong>第7节 轨迹规划器</strong>，包括优化变量、目标函数、限制条件、初始化、递归序贯优化。其中限制条件包括时间可行性、轨迹的连续性、航路点、轨道动力学、机器人执行机构、到路径的线性距离。</p> <p><strong>第8节 轨迹跟踪控制器</strong>，为了使轨迹跟踪性能最大化，我们设计了一种模型预测控制（MPC）方法，该方法在每个采样时间通过求解以下最优控制问题（OCP）获得控制命令<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>u</mi></mrow><annotation encoding="application/x-tex">u</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.43056em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit">u</span></span></span></span>。</p> <p><strong>结论</strong>：在本文中，我们提出了一种基于优化的多旋翼空中机器人轨迹跟踪解决方案，给出了一条几何可行的路径，作为我们先前工作的延续[50]。</p> <p>我们的轨迹规划器将轨迹时间最小化，不仅包括轨迹的连续性（即Cm级）、速度和高阶导数的限制、航路点的约束以及计划轨迹与给定路径之间的最大距离等限制条件，同时，基于其动力学模型对空中机器人的执行机构进行了限制，保证了机器人能够实现预定的轨迹。我们提出了一种新的紧凑的多阶段轨迹定义，它由两种不同类型的多项式组成，提供了更高的轨迹语义编码，允许在不损失灵活性的情况下计算最优解，但遵循预定义的简单轮廓。</p> <p>我们的模型预测控制器（MPC）用于轨迹跟踪，它将计划轨迹的所有量值（即位置和航向、速度和加速度）以及使用计划轨迹计算的控制命令参考值作为输入，以生成控制命令，与仅使用计划位置和航向的控制器相比，提高了跟踪性能。</p> <p>规划者和控制器的四元数和误差四元数的数学表示方向，因为它已经表明，与其他公式相比有一些优势。为了得出这一结论，我们分析了三维空间<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>S</mi><mi>O</mi><mo>(</mo><mn>3</mn><mo>)</mo></mrow><annotation encoding="application/x-tex">SO(3)</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.05764em;">S</span><span class="mord mathit" style="margin-right:0.02778em;">O</span><span class="mopen">(</span><span class="mord mathrm">3</span><span class="mclose">)</span></span></span></span>和二维空间<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>S</mi><mi>O</mi><mo>(</mo><mn>2</mn><mo>)</mo></mrow><annotation encoding="application/x-tex">SO(2)</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.05764em;">S</span><span class="mord mathit" style="margin-right:0.02778em;">O</span><span class="mopen">(</span><span class="mord mathrm">2</span><span class="mclose">)</span></span></span></span>中最常用的方位及其运动关系的数学表示，并计算了两个旋转之间的差以及两个旋转之间的标量误差的定义方向。</p> <p>经过广泛的定性和定量评估，我们已经验证了我们的轨迹跟踪方法。一方面，我们分析了所提出的轨迹规划器，包括其优化过程以及所计算轨迹的性质。另一方面，我们通过实际飞行研究了所提出的轨迹跟踪控制器，并将其性能与仅考虑期望姿态时利用轨迹规划器的全部输出（即姿态和高阶导数以及控制命令参考）的公式进行了比较。</p> <h2 id="_2019🌗-空中荒野搜救与地面支援"><a href="#_2019🌗-空中荒野搜救与地面支援" class="header-anchor">#</a> [2019🌗]空中荒野搜救与地面支援</h2> <p>9月3日阅，论文名称：Aerial Wilderness Search and Rescue with Ground Support，《Journal of Intelligent &amp; Robotic Systems》，作者来自<em>多伦多大学</em>，<a href="https://wws.lanzous.com/i9537gbwlni" target="_blank" rel="noopener noreferrer">论文查看<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a>。</p> <blockquote><p><strong>摘要</strong>：无人机（UAV）已经被广泛的应用。他们在荒野搜索和救援（wilderness search and rescue, WiSAR）中的应用，特别是，已经从一个很高的有利位置调查了快速搜索区域的覆盖范围。然而，利用同时使用无人机和无人地面车辆（UGV）的合作系统，可以进一步提高此类搜索的成功概率。本文提出了一种新的无人机无人地面车辆协同搜索规划方法。所提出的方法，特别是为WiSAR开发的，考虑到搜索区域是不断增长的，并且搜索是稀疏的。它还假定无人机探测到的目标必须由地面搜索者识别。因此，本文提出的无人机/无人地面车辆运动规划方法主要有两个部分：（1）协同搜索和（2）联合目标识别。该方法的新颖之处在于它使用了（1）与时间相关的目标位置等概率曲线，（2）一种高效的协同目标识别算法。该方法已通过多种不同场景下的WiSAR模拟搜索得到验证。此外，与其他方法的大量对比实验表明，我们的方法具有更高的目标检测率和更短的搜索时间，在目标检测概率方面显著优于其他方法75%-255%。</p></blockquote> <p>关键词：<em>Autonomous mobile-target search</em>（自主移动目标搜索），<em>UAV-UGV Cooperative search planning</em>（UAV-UGV协同搜索规划)，<em>Iso-probability curves</em>（等概率曲线），<em>Wilderness search and rescue</em>（荒野搜救）</p> <p><strong>第1节 引言</strong>，无人机（UAV）已被应用于各种领域[1-6]，包括搜救（SAR）[7-20]。SAR文献主要集中在三个研究子领域：无人机系统的总体评估及其与地面/地面搜索团队的可能整合[16-20]；无人机搜索轨迹的规划[7-13]；航空图像中目标的检测[14,15]。搜索轨迹规划一直是一个特别具有挑战性的问题，因为搜索空间很大，而且经常在不断增长，而且关于目标的潜在位置存在固有的不确定性。同样，在航空图像中识别目标也很困难，因为在识别目标时应该寻找哪些特征是不确定的。例如，在[14]中，声称高达90%的无人机探测可以是搜索目标以外的对象（即假阳性）。</p> <p>尽管（独立）无人机的性能是成功执行搜救任务的关键，但通过使用无人机和无人地面（USV）或地面（UGV）车辆的协同系统，可以显著提高找到搜索目标的机会[21-43]。在城市搜救（USAR）（例如[24]）、荒野搜救（WiSAR）（例如[23]）和海空救援（ASR）行动（例如[25]）中，已经广泛考虑了这种合作系统。在本文中，我们特别关注为WiSAR配置的协同UAVGV系统的搜索轨迹规划。</p> <p>在[37]中，无人机和无人地面车辆采用基于分布式数字信息素的群集方法进行协调。在这种方法中，“信息素”是指搜索区域上的数字注释，表示尚未搜索的区域、可能的目标位置、禁止区域和计划由其他车辆搜索的区域。每个搜索代理维护自己在搜索区域内定义的信息素地图，并规划一条有限的水平路径以使依赖信息素的目标函数最大化。在[38]中，无人机用于首先获得目标位置的粗略估计，然后由无人地面车辆对估计值进行改进。无人机搜索路径的规划采用固定搜索模式或反应式信息采集运动控制器。虽然后者也适用于无人地面车辆，但无人地面车辆的运动主要由一个类似的反应式控制器控制，以减少特征位置估计的不确定性。在文献[39]中，搜索被定义为一个多机器人任务分配问题，同时考虑到一些单元，如无人机，用于定位目标，而其他单元，如无人地面车辆，则用于识别和救援目标。后见优化是一种在线规划方法，在不确定的情况下为每个机器人分配任务。</p> <p>在[40]中，提出了一种基于拍卖的任务分配方法来规划搜索。也就是说，任务（拍卖品）被赋予搜索代理（竞拍者），并在执行任务（投标）时获得最大预期效用。执行任务的agent获得的期望效用是找到目标的报酬的期望值减去将任务插入其当前任务列表的成本。文献[41]提出了一种agent控制体系结构，称为混合智能控制agent。这种结构将连续状态控制和基于离散状态的控制结合成一个混合系统。该控制器被演示用于执行UAVUGV搜索和捕获任务。文献[42]将一组网格单元上的搜索规划问题归结为一个混合整数线性规划（MILP）。搜索规划被视为一个优化问题，即寻找一组搜索路径，以使覆盖率和连通性最大化。在时间框架中引入了瞬时连通性和周期性约束。</p> <p>在文献[43]中，提出了一种针对USAR环境的搜索轨迹规划的协同方法。研究了城市环境中移动目标的协同定位和跟踪问题，采用分布式拍卖方案和路径规划树来规划有限的前瞻路径。无人机和无人地面车辆都被认为能够定位和跟踪目标。</p> <p>我们在本文中提出的工作，独特地考虑了在增长和稀疏（搜索）区域（即，在可用的时间和资源的情况下，无法调查整个增长的搜索区域）中协同搜索的UAV-UGV协作团队。无人机进行空中搜索，无人地面车辆进行地面搜索。虽然其他工作通常假设无人机或无人值守地面车辆能够识别目标，尽管无人机比无人值守地面车辆更有效地检测和定位目标，但它们无法肯定地确认其身份。例如，由于树叶和天气造成的遮挡，使得无人机很难从上面识别目标。另一方面，无人值守地面车辆被假定能够同时做到这两个方面，即对目标进行独立搜索，以及“帮助”识别无人机探测到的目标。因此，本文提出的无人机/无人值守地面车辆运动规划新方法，可以利用异构感知能力对WiSAR中丢失的目标进行协同搜索和联合识别。</p> <p>在该方法中，无人机和无人值守地面车辆都使用等概率曲线搜索目标，这是在[44]中首次引入的，用来模拟（未跟踪）目标运动。我们最初的工作是使用iso概率曲线开发一种无人机专用搜索规划方法，详见[45]。与以往使用等容曲线不同，无人值守地面车辆在搜索期间被分配并必须遵循单独的曲线[46]，我们提出的新方法允许无人机以最佳方式遍历和覆盖一系列等概率曲线，并与无人值守地面车辆的搜索相协调。新方法允许无人机覆盖所有可能的目标运动，而不偏袒任何特定的目标运动，同时也避免了使用无人地面车辆搜索时的搜索冗余。</p> <p><strong>第2节 WiSAR问题</strong>，本文主要研究如何利用无人侦察车支援的无人机搜寻小组来解决WiSAR环境下的移动目标搜寻问题。下面详细描述了该问题。</p> <p><em>2.1 规划问题</em>，本文所述的荒野搜索规划问题是在有限的搜索资源（无人机和无人地面车辆）的情况下，最大限度地提高成功定位失踪人员的概率。解决这一问题需要有效地利用目标和搜索区域的不完全和概率信息来协调搜索资源。</p> <p>搜索开始时可用的目标数据通常仅限于他们最后已知的位置（LKP）（例如，他们打算开始徒步旅行的小路头）和他们的人口统计数据（例如，徒步旅行者、骑自行车的人、儿童、成人、年轻人、老年人等）。需要注意的是，在整个搜索过程中，目标的实时位置是未知的，并且是不可追踪的，直到检测到为止。同样，在搜索之前，只有全局地形信息可用。因此，无人机和无人地面车辆需要对搜索过程中发现的特定地形信息和目标线索进行实时处理。</p> <p>文献中已经考虑了许多荒野目标运动预测模型（例如[47–51]）。在此，运动模型假设目标随机漂移：在选择一个新的随机航向之前，保持一个随机距离的固定航向。因此，运动是由一系列随机的航向和距离来确定的。用两个参数来表征目标运动：<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>σ</mi><mrow><mi>θ</mi></mrow></msub></mrow><annotation encoding="application/x-tex">\sigma_{\theta}</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.58056em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit" style="margin-right:0.03588em;">σ</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.03588em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord mathit" style="margin-right:0.02778em;">θ</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>和<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>d</mi><mrow><mi>m</mi><mi>a</mi><mi>x</mi></mrow></msub></mrow><annotation encoding="application/x-tex">d_{max}</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.69444em;"></span><span class="strut bottom" style="height:0.84444em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">d</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord mathit">m</span><span class="mord mathit">a</span><span class="mord mathit">x</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>，[48]。前者<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>σ</mi><mrow><mi>θ</mi></mrow></msub></mrow><annotation encoding="application/x-tex">\sigma_{\theta}</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.58056em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit" style="margin-right:0.03588em;">σ</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.03588em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord mathit" style="margin-right:0.02778em;">θ</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>的正态分布是可能的，取目标的正态分布。后者，即<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>d</mi><mrow><mi>m</mi><mi>a</mi><mi>x</mi></mrow></msub></mrow><annotation encoding="application/x-tex">d_{max}</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.69444em;"></span><span class="strut bottom" style="height:0.84444em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">d</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord mathit">m</span><span class="mord mathit">a</span><span class="mord mathit">x</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>，是均匀分布的上界，从中可以得出目标的移动距离（即，在随机决定新的距离之前，目标将行驶的距离）。两者都定义为：</p> <p><img src="https://s1.ax1x.com/2020/09/03/wiYvAs.png" alt="wiYvAs.png"></p> <p>式中，<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mo>(</mo><msub><mi>θ</mi><mi>i</mi></msub><mo separator="true">,</mo><msub><mi>d</mi><mi>i</mi></msub><mo>)</mo></mrow><annotation encoding="application/x-tex">(\theta_i,d_i)</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mopen">(</span><span class="mord"><span class="mord mathit" style="margin-right:0.02778em;">θ</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.02778em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mpunct">,</span><span class="mord"><span class="mord mathit">d</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mclose">)</span></span></span></span>分别表示目标在LKP处开始运动后经过的第<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>i</mi></mrow><annotation encoding="application/x-tex">i</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.65952em;"></span><span class="strut bottom" style="height:0.65952em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit">i</span></span></span></span>段（航向和距离）。</p> <p>在上面，<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>σ</mi><mrow><mi>θ</mi></mrow></msub></mrow><annotation encoding="application/x-tex">\sigma_{\theta}</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.58056em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit" style="margin-right:0.03588em;">σ</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.03588em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord mathit" style="margin-right:0.02778em;">θ</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>表征了目标四处游荡的程度，而<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>d</mi><mrow><mi>m</mi><mi>a</mi><mi>x</mi></mrow></msub></mrow><annotation encoding="application/x-tex">d_{max}</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.69444em;"></span><span class="strut bottom" style="height:0.84444em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">d</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord mathit">m</span><span class="mord mathit">a</span><span class="mord mathit">x</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>则表示目标的犹豫不决。我们可以注意到，<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>σ</mi><mrow><mi>θ</mi></mrow></msub></mrow><annotation encoding="application/x-tex">\sigma_{\theta}</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.58056em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit" style="margin-right:0.03588em;">σ</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.03588em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord mathit" style="margin-right:0.02778em;">θ</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>和<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>d</mi><mrow><mi>m</mi><mi>a</mi><mi>x</mi></mrow></mrow><annotation encoding="application/x-tex">d{max}</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.69444em;"></span><span class="strut bottom" style="height:0.69444em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit">d</span><span class="mord textstyle uncramped"><span class="mord mathit">m</span><span class="mord mathit">a</span><span class="mord mathit">x</span></span></span></span></span>都可以根据人口统计信息和历史WiSAR数据推断，以及定义可能目标步行速度的概率分布[52]。图1显示了一个例子，其中目标刚刚完成第4段的末尾，即将开始第5段，其中<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>d</mi><mi>t</mi></msub></mrow><annotation encoding="application/x-tex">d_t</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.69444em;"></span><span class="strut bottom" style="height:0.84444em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">d</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">t</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>和θt表示目标相对于LKP的当前（绝对）位置。<br>
生成的目标路径与地形模型（例如植被、坡度等）结合使用，以确定目标轨迹。由于目标是移动的，搜索区域的大小随着时间的推移而增加。</p> <p><img src="https://s1.ax1x.com/2020/09/03/wi00K0.png" alt="一个目标轨迹示例"></p> <p><strong>第3节 背景信息</strong>，所提出的搜索规划方法利用了我们先前工作中提出的几个概念。本节简要概述了这些功能。</p> <p><em>3.1 等概率曲线</em>，等概率曲线是环绕目标LKP的闭合曲线，在任何给定时间，它们表示第<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>P</mi></mrow><annotation encoding="application/x-tex">P</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.68333em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.13889em;">P</span></span></span></span>个百分位目标在离开LKP后在任何给定方向上所能达到的最远距离。图2显示了两个不同时间(<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>t</mi></mrow><annotation encoding="application/x-tex">t</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.61508em;"></span><span class="strut bottom" style="height:0.61508em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit">t</span></span></span></span>和 <span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>t</mi><mo>+</mo><mi mathvariant="normal">△</mi><mi>t</mi></mrow><annotation encoding="application/x-tex">t+\triangle t</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.69444em;"></span><span class="strut bottom" style="height:0.8888799999999999em;vertical-align:-0.19444em;"></span><span class="base textstyle uncramped"><span class="mord mathit">t</span><span class="mbin">+</span><span class="mord mathrm">△</span><span class="mord mathit">t</span></span></span></span>)的三个等参概率曲线（分别为10%、50%和90%）。</p> <p><img src="https://s1.ax1x.com/2020/09/03/wi0vsP.png" alt="一组等概率曲线"></p> <p><em>3.2 伪冗余覆盖</em>,对于静态目标，冗余覆盖被定义为重新访问已经搜索过的位置。避免这种冗余覆盖自然会提高搜索效率。但是，移动目标可以移回已经搜索过的位置。因此，在移动目标搜索中不存在真正的冗余覆盖。在此，讨论伪冗余覆盖，即对冗余覆盖的动态模拟.</p> <p><strong>第4节 提出的搜索方法</strong>，该方法分为三个阶段：搜索agent轨迹规划、联合目标识别和搜索智能体轨迹重新规划。第一阶段是规划无人机/无人地面车辆的搜索轨迹，以最大限度地提高探测目标的概率。当无人机探测到潜在目标并派遣无人地面车辆进行识别时，第二阶段被触发。当检测到有关目标的新信息（例如线索）时，第三阶段开始，从而重新规划UAV/UGV搜索轨迹。图4给出了所提算法的高级概述。</p> <p><img src="https://s1.ax1x.com/2020/09/03/wiBndU.png" alt="所提算法的高级概述"></p> <p><em>阶段1：搜索代理轨迹规划</em><br> <em>阶段2：联合识别</em><br> <em>阶段3：重新规划</em></p> <p><strong>第5节 说明性和比较性模拟</strong>，在本节中，首先给出一组三个示例，展示不同的目标检测场景。然后讨论了大量与其他方法进行比较研究的结果，以及简短的讨论。</p> <p><strong>结论</strong>：提出了一种适用于无人机/无人地面车辆协同作战的移动目标搜索规划方法。该方法利用目标等概率曲线来规划无人机和无人地面车辆的轨迹。对于无人机，所提出的新的搜索规划算法确定了穿越一系列等概率曲线的轨迹，同时用同样的努力覆盖所有这些曲线。这样的搜索实现了开发和勘探之间的平衡。该方法更新颖，它允许协调搜索和联合识别丢失的目标。也就是说，对于首先被无人机探测到的目标，采用无人值守地面车辆进行身份确认。</p> <p>通过大量的仿真实验验证了所提出的搜索协调和目标识别方法。对比实验表明，我们的方法在WiSAR中的性能明显优于几种替代方法。结果表明，该方法具有较高的目标检测率，并且在目标首次被无人机检测到的情况下，搜索时间更短。在最好的情况下，平均而言，所提出的方法比替代方法的性能好大约250%。与所提出方法进行比较的其他方法，只有在搜索提前开始时，才能与所提出的方法进行比较。也就是说，当目标没有传播到远离LKP的地方。</p> <h2 id="_2019-多目标协同无人机地面攻击策略研究"><a href="#_2019-多目标协同无人机地面攻击策略研究" class="header-anchor">#</a> [2019]多目标协同无人机地面攻击策略研究</h2> <p>9月4日阅，论文名称：Ground Attack Strategy of Cooperative UAVs for Multitargets，《Complexity》，作者来自<em>空军工程大学</em>，<a href="https://wws.lanzous.com/iVwgEgc67ub" target="_blank" rel="noopener noreferrer">论文查看<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a>。</p> <blockquote><p><strong>摘要</strong>：人类有一种基本的能力，即在彼此之间共享视觉，以实现共同的目标，而协作式无人机则没有这种能力。困难主要在于人类的数学描述和难以捉摸的实验实践。本文提出了一种云上的并行多视图拼接方法，该文首先回顾了无人机的理论和实践研究。然后从人类的视觉分享中重新考虑这些术语。其次，提出了云上并行多视点拼接的概念模型，并给出了数学推导。此外，还搭建了一个实验性的协同无人机平台来实现这些算法。仿真和实际结果都验证了该方法的可行性。最后，对未来的问题进行了一般性讨论和建议。</p></blockquote> <div class="custom-block tip"><p class="custom-block-title">想法</p> <p>这篇论文是空工大参加无人争锋比赛时用到的方法，里面的场景我们也考虑过，但是确实没他们深入，尤其是对于颜色识别这块</p></div> <p><strong>第1节 引言</strong>，在当前的快速作战和信息战中，无人机作战系统在获取信息优势、实施精确打击、完成快速作战任务等方面发挥着重要作用[1]。特别是智能无人机，它将人工智能与感知环境、制定攻击策略、评估任务等结合起来，可以在战争中取得主动权和胜利[2]。</p> <p>然而，单台无人机的任务完成往往不尽如人意。当单个无人机侵入敌占区时，由于自身载荷限制、敌方干扰和干扰攻击等原因，往往无法完成有效的攻击。因此，需要多架无人机协同作战才能保证任务的完成[3,4]。</p> <p>随着技术和装备的发展，大国间的空中对抗将处于高强度状态。传统的空战方法把载人飞行器作为未来空战的主体，直到发现协同无人机（Co-UAVs）的意义。协同无人机表现出一种新型的作战效能[5]，它具有以下优点。</p> <ul><li>智能优势：协同无人机具有分布式传感器，可以相互配合，实现精确的目标定位。网络化作战可以实现无人机之间的信息共享，实现群中“谁知道，谁都知道”。智能共享为协同攻击的实现奠定了基础。</li> <li>速度优势：协同无人机可以根据战场位置在线自动分解任务，并将子任务分配给相应的车辆。被分配的无人机能够快速反应并与干扰抑制、火力打击、毁伤等其他作战行动相协调，缩短了“感知-决策-行动”周期，加快了作战进程。</li> <li>协作优势：无人机之间的协作可以自主、自适应地协同工作，使群体成为一个整体。从而达到统一的密集攻击和密集防御。</li> <li>数量优势：联合无人机通常采用低成本的无人驾驶平台，体积小，数量大。它能保持高压态势和对敌连续攻击，迅速瘫痪敌方防御系统，在最短时间内达到作战目的。</li></ul> <p>协同无人机作为一种颠覆性的现代攻击策略，一直被视为制胜的核心。尤其是协同无人机的群体智能（SI）作为赢得未来战斗的关键技术得到了广泛的应用[6]。</p> <p>理论上，Suresh和Ghose[7]通过建立探测范围内的路径函数，提出了一种自适应的无人机地面攻击策略。它们结合了侦察、干扰和自主攻击，为联合无人机建立了自适应的地面攻击策略。罗等。[8] 提出了一种无人机在线-离线一体化协同策略，利用离线专家决策分析战场环境，建立环境影响图；采用在线鲁棒决策模型对各无人机所面临的场景进行评估，从而采取最佳的鲁棒攻击行动。Wang等人。[9] 尝试应用径向基函数神经网络（RBF-NN）来寻找协同无人机的最佳策略，并对其协同性能进行评价。同时，采用可变神经网络来搜索精确的候选可行解集，提高了RBF神经网络的效率。文献[10]提出了一种基于拍卖算法的区间一致性模型，旨在解决协同无人机的一致性问题，使无人机同时到达目标。</p> <p>实际上，正如美国空军（USAF）研究实验室在2002年所表明的，在未来复杂战场上取得成功的关键是使用多无人机，包括搜索和攻击、侦查和支援、心理战和战术约束[11]。协同无人机是未来无人作战的突破口。在美国空军随后的研究中，进行了数百次模拟实验，以模拟联合无人机对宙斯盾防空系统攻击的拦截[12]。结果表明，该防御系统很难拦截所有无人机，防御系统又一次被突破，表明协同无人机具有优越的攻击性能。2015年，美国国防高级研究计划局（DARPA）发布了“格雷米林斯”项目，该项目计划开发用于侦察和电子战的部分可回收联合无人机[13]。格瑞米林可以通过压制导弹防御系统、切断通信、以大量无人机攻击敌人的数据网络来击败敌人。2016年，中国电子科技集团公司（CETC）在中国首次建立了联合无人机试验样机，验证了67架无人机的协同原理。2017年，中国电科完成了119架固定翼无人机的飞行试验[14]。</p> <p>理论和实践研究表明，协同无人机已经成为战场上的制胜力量，具有改变未来游戏规则的能力[15]。然而，以往的研究主要集中在预先规划的策略上，即地面攻击策略是在无人机到达战场之前预先制定好的。由于战场是未知的（或部分未知的），所以很难预先计划好所有的场景。</p> <p>本文提出了一种基于人类合作的无人机协同方法。本文首先对人与人之间以目标为导向的合作，特别是基于视觉共享的战略制定进行了解释。然后，一个类似人类的模型称为并行多视图云拼接（PMVSC），它将这些生物行为科学的见解整合到一个结构化的无人机协作系统中。除了PMVSC的发展外，我们还将该模型应用于需要无人机相互协作的多目标地面攻击任务。最后，在实验多无人机平台上，对PMVSC进行了实际场景下的实验（其中有两种不同的对象来测试协同无人机对多目标的精确处理性能）。</p> <p><strong>第2节 基于视觉共享的目标导向的人类合作</strong>，社会心理学家Lewin等人已经阐明了人类的合作（cooperation of humans，CoH）[16，17]。他指出，人类的合作是一种复杂的群体行为（behavior，B），受内部个体（individuals，I）和外部环境（environment，E）的影响：</p> <p><span class="katex-display"><span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>B</mi><mo>=</mo><mi>f</mi><mo>(</mo><mi>I</mi><mo separator="true">,</mo><mi>E</mi><mo>)</mo></mrow><annotation encoding="application/x-tex">B=f(I,E)
</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base displaystyle textstyle uncramped"><span class="mord mathit" style="margin-right:0.05017em;">B</span><span class="mrel">=</span><span class="mord mathit" style="margin-right:0.10764em;">f</span><span class="mopen">(</span><span class="mord mathit" style="margin-right:0.07847em;">I</span><span class="mpunct">,</span><span class="mord mathit" style="margin-right:0.05764em;">E</span><span class="mclose">)</span></span></span></span></span></p> <p>式中<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>B</mi><mo>=</mo><mo>[</mo><msub><mi>B</mi><mn>1</mn></msub><mo separator="true">,</mo><msub><mi>B</mi><mn>2</mn></msub><mo separator="true">,</mo><mo>⋯</mo><mo separator="true">,</mo><msub><mi>B</mi><mi>n</mi></msub><msup><mo>]</mo><mi>T</mi></msup></mrow><annotation encoding="application/x-tex">B=[B_1,B_2, \cdots, B_n]^T</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.8413309999999999em;"></span><span class="strut bottom" style="height:1.0913309999999998em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.05017em;">B</span><span class="mrel">=</span><span class="mopen">[</span><span class="mord"><span class="mord mathit" style="margin-right:0.05017em;">B</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.05017em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathrm">1</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mpunct">,</span><span class="mord"><span class="mord mathit" style="margin-right:0.05017em;">B</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.05017em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathrm">2</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mpunct">,</span><span class="minner">⋯</span><span class="mpunct">,</span><span class="mord"><span class="mord mathit" style="margin-right:0.05017em;">B</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.05017em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">n</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mclose"><span class="mclose">]</span><span class="vlist"><span style="top:-0.363em;margin-right:0.05em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle uncramped"><span class="mord mathit" style="margin-right:0.13889em;">T</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>代表个体的行为集合，<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>n</mi></mrow><annotation encoding="application/x-tex">n</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.43056em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit">n</span></span></span></span>是群体中个体的总数。<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>I</mi><mo>=</mo><mo>[</mo><msub><mi>I</mi><mn>1</mn></msub><mo separator="true">,</mo><msub><mi>I</mi><mn>2</mn></msub><mo separator="true">,</mo><mo>⋯</mo><mo separator="true">,</mo><msub><mi>I</mi><mi>n</mi></msub><msup><mo>]</mo><mi>T</mi></msup></mrow><annotation encoding="application/x-tex">I=[I_1, I_2, \cdots, I_n]^T</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.8413309999999999em;"></span><span class="strut bottom" style="height:1.0913309999999998em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.07847em;">I</span><span class="mrel">=</span><span class="mopen">[</span><span class="mord"><span class="mord mathit" style="margin-right:0.07847em;">I</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.07847em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathrm">1</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mpunct">,</span><span class="mord"><span class="mord mathit" style="margin-right:0.07847em;">I</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.07847em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathrm">2</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mpunct">,</span><span class="minner">⋯</span><span class="mpunct">,</span><span class="mord"><span class="mord mathit" style="margin-right:0.07847em;">I</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.07847em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">n</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mclose"><span class="mclose">]</span><span class="vlist"><span style="top:-0.363em;margin-right:0.05em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle uncramped"><span class="mord mathit" style="margin-right:0.13889em;">T</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>是个体的内在条件和特征，由生理需要、生理特征、能力、个性等多种生理、心理因素构成。E=[E_1，E_2, \cdots , E_n]^T是每个人周围的外部环境。</p> <p>Lewin-CoH模型在一定程度上揭示了人类行为的一般规律。然而，这是一种被动的合作模式，没有明确的目标。目标导向型行为是寻求实现群体总体目标的过程。在一个合作的任务中，每个人都有自己的任务；他们独立地工作，同时并行地完成总的目标。因此，式（1）可修正如下：</p> <p><span class="katex-display"><span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>B</mi><mo>=</mo><mi>f</mi><mo>(</mo><mi>I</mi><mo separator="true">,</mo><mi>E</mi><mo separator="true">,</mo><mi>G</mi><mo>)</mo></mrow><annotation encoding="application/x-tex">B=f(I,E,G)
</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base displaystyle textstyle uncramped"><span class="mord mathit" style="margin-right:0.05017em;">B</span><span class="mrel">=</span><span class="mord mathit" style="margin-right:0.10764em;">f</span><span class="mopen">(</span><span class="mord mathit" style="margin-right:0.07847em;">I</span><span class="mpunct">,</span><span class="mord mathit" style="margin-right:0.05764em;">E</span><span class="mpunct">,</span><span class="mord mathit">G</span><span class="mclose">)</span></span></span></span></span></p> <p>式中<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>G</mi><mo>=</mo><mo>[</mo><mi>G</mi><mn>1</mn><mo separator="true">,</mo><mi>G</mi><mn>2</mn><mo separator="true">,</mo><mo>⋯</mo><mo separator="true">,</mo><msub><mi>G</mi><mi>n</mi></msub><msup><mo>]</mo><mi>T</mi></msup></mrow><annotation encoding="application/x-tex">G=[G1, G2, \cdots ,G_n]^T</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.8413309999999999em;"></span><span class="strut bottom" style="height:1.0913309999999998em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mord mathit">G</span><span class="mrel">=</span><span class="mopen">[</span><span class="mord mathit">G</span><span class="mord mathrm">1</span><span class="mpunct">,</span><span class="mord mathit">G</span><span class="mord mathrm">2</span><span class="mpunct">,</span><span class="minner">⋯</span><span class="mpunct">,</span><span class="mord"><span class="mord mathit">G</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">n</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mclose"><span class="mclose">]</span><span class="vlist"><span style="top:-0.363em;margin-right:0.05em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle uncramped"><span class="mord mathit" style="margin-right:0.13889em;">T</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>代表团队目标，由每个个人目标组成。</p> <p>以一个典型的场景为例，如图1所示。总的目标是找到环境中的所有对象（图1中的红色圆圈），但是有障碍物挡住了视线。每个人只能看到局部的物体和环境（半透明的视觉）。他们分享他们对获得整体环境的看法，以便向她咨询以获得适当的对象分配。</p> <p><img src="https://s1.ax1x.com/2020/09/04/wFDTzj.png" alt="wFDTzj.png"></p> <p><strong>第3节 基于愿景共享的目标导向合作机制</strong>，<em>3.1 云上并行多视图拼接轮廓</em>。图2给出了我们提出的体系结构的图形化表示，即在环境中无人机协同系统上感知、认知和分配目标就像人类基于视觉共享的目标导向合作，每个人都对特定的目标负责，共同完成总体目标。</p> <p><img src="https://s1.ax1x.com/2020/09/04/wFsQCF.png" alt="wFsQCF.png"></p> <p><em>3.2 PMVSC的构成及算法</em>，假设有<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>N</mi></mrow><annotation encoding="application/x-tex">N</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.68333em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.10903em;">N</span></span></span></span>架无人机执行攻击任务。对于成组的第<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>k</mi></mrow><annotation encoding="application/x-tex">k</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.69444em;"></span><span class="strut bottom" style="height:0.69444em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.03148em;">k</span></span></span></span>架无人机，摄像机感知到的图像为<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>I</mi><mi>k</mi></msub><mo>(</mo><mi>x</mi><mo separator="true">,</mo><mi>y</mi><mo>)</mo></mrow><annotation encoding="application/x-tex">I_k(x,y)</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit" style="margin-right:0.07847em;">I</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.07847em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit" style="margin-right:0.03148em;">k</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mopen">(</span><span class="mord mathit">x</span><span class="mpunct">,</span><span class="mord mathit" style="margin-right:0.03588em;">y</span><span class="mclose">)</span></span></span></span>，其中<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mo>(</mo><mi>x</mi><mo separator="true">,</mo><mi>y</mi><mo>)</mo></mrow><annotation encoding="application/x-tex">(x,y)</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mopen">(</span><span class="mord mathit">x</span><span class="mpunct">,</span><span class="mord mathit" style="margin-right:0.03588em;">y</span><span class="mclose">)</span></span></span></span>是感知图像中x轴和y轴方向上的位置。在感知模块中，对彩色图像进行预处理，以便于后续处理。</p> <p>来自摄影机的原始图像<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>I</mi><mi>k</mi></msub></mrow><annotation encoding="application/x-tex">I_k</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit" style="margin-right:0.07847em;">I</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.07847em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit" style="margin-right:0.03148em;">k</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>处于红色、绿色和蓝色模型（RGB模型）；每种颜色都显示在红色、绿色和蓝色的主光谱分量中。该模型基于笛卡尔坐标系。RGB模型在观测和应用方面具有优势。然而，正如Ali等人指出的那样。[18] 与色调、饱和度和光照模型（HSI模型）相比，RGB模型有两个缺点：（a）将三个分量共同用于描述图像，导致各分量之间存在大量不必要的信息，这将增加计算量。（b） RGB空间中点与点之间欧氏距离的变化与实际颜色的变化不成正比。在进行分色时，容易造成假分色、漏掉有用信息或将无用信息与有用信息混合。</p> <p><strong>第4节 实验</strong>，包括无人机实验平台、图像拼接、</p> <p>下图是四架无人机得到的图片，进行拼接。</p> <p><img src="https://s1.ax1x.com/2020/09/04/wF6a1e.png" alt="wF6a1e.png"></p> <p>拼接后的图片如下所示：</p> <p><img src="https://s1.ax1x.com/2020/09/04/wF6D0I.png" alt="wF6D0I.png"></p> <p><strong>结论</strong>：针对多目标攻击问题，提出了一种基于PMVSC的多无人机精确目标识别、攻击和任务分配策略。以下是一些结束语。</p> <h2 id="_2019🌖-基于马尔可夫模型的多无人机轨迹与任务协同规划"><a href="#_2019🌖-基于马尔可夫模型的多无人机轨迹与任务协同规划" class="header-anchor">#</a> [2019🌖]基于马尔可夫模型的多无人机轨迹与任务协同规划</h2> <p>9月5日阅，论文名称：Multi-UAVs trajectory and mission cooperative planning based on the Markov model，《Physical Communication》，作者来自<em>四川大学</em>，<a href="https://wws.lanzous.com/iRWrjgeub6h" target="_blank" rel="noopener noreferrer">论文查看<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a>。</p> <blockquote><p><strong>摘要</strong>：随着战场环境的日益复杂，单台无人机在执行任务时遇到困难，需要多台无人机协同作战。然而，由于搜索空间很大，搜索目标分布稀疏，同时进行任务规划和路径规划也是一个NP（非确定性多项式问题）问题，给任务规划带来了极大的困难。近年来，广泛应用于多无人机协同任务规划的元启发式搜索算法难以找到可靠的初始解，限制了算法的收敛速度。针对这一问题，在多无人机协同任务规划问题中充分考虑了大量的约束条件和性能规划指标。提出了一种基于模拟退火算法和禁忌搜索算法的两层任务规划模型，解决了多目标、多飞行器的任务规划问题。本文将五状态马尔可夫链模型与任务规划模型相结合，通过判断飞行平台的生存状态概率来确定最优的任务规划方案。仿真结果表明，该方法能在保证最优任务规划的前提下，大大提高无人机的生存能力。</p></blockquote> <p>关键词：<em>Collaborative mission planning</em>（协同任务规划）；<em>Trajectory planning</em>（轨迹规划）；<em>Survival state</em>（生存状态）；<em>Markov model</em>（马尔可夫模型）；<em>Meta-heuristic search algorithms</em>（元启发式搜索算法）</p> <p><strong>第1节 引言</strong>，随着无人机技术的快速发展，无人机已经能够承担情报侦察、战场监视、电磁干扰、空袭、照明、损伤评估等多项任务[1]。文献[2]提出了一种基于多跳通信的多无人机（UAV）与地面站的协同监视，以实现监视任务和连通性维护之间的折衷。文献[3]提出了一种基于任务分配共识的多目标跟踪算法，用于无人机在有限的通信范围内，在分布式控制结构下跟踪多个运动目标。文献[4]提出了一种基于基本行为组合与环境映射的覆盖搜索算法。</p> <p>无人机（UAV）也可以帮助BSs卸载数据流量[5]。无人机返回讲台的检测涉及信息安全传输问题[6]。研究了超密集网络中无人机辅助的可伸缩视频缓存安全传输[7,8]。在拟议方案中[9]。具有长距离的主收发器通过中继进行通信[10]。面对日益复杂的战场环境[11]，单台无人机难以单独完成指定的作战任务，必须由多台无人机协同完成[12]。多无人机协同任务规划的关键是任务分配，它将不同的任务分配给不同的无人机，以优化整个舰队的作战效能，降低作战成本。任务规划方法主要包括全局搜索算法、动态规划算法、匈牙利算法[13]和软计算方法。近年来，各种软计算方法被频繁地用于解决任务规划问题。每个“任务”区域都被细化成多个目标，需要同时被照亮和打击。该区域也可能包含禁飞区。例如威胁（SAM等），以及未出现在附带损害区域（如学校、医院等）的建筑物[14]。</p> <p>无人机任务规划和多任务协同规划是无人机任务规划的两个重要环节。另外，这两部分都是不确定性多项式（NP）问题[15,16]。求解难度大，穷举法或最优控制法计算量大。为了降低求解难度，通常将问题分为两个子问题：协同任务规划和路径规划。弱化或不考虑二者之间的耦合，采用分层解耦分别求解[17-22]。这些解决方案的共同点是将这两个问题分开。在任务规划过程中，不考虑飞行平台的运动学约束、环境障碍和威胁区约束，只考虑了任务之间的时间约束和交互作用。任务规划的结果作为路径规划的输入，以获得满足无人机自身约束、障碍物、威胁区域和避碰约束的平滑航迹。分层求解法降低了求解的难度。然而，实际任务环境通常是时变的、不确定的，而分层求解方法的求解过程是异步的，而且在复杂环境中搜索时间过长。而且，在保证最高总效果值的同时，无法保证飞机的生存概率，但无人机的生存概率又会反过来影响任务执行的总效果值。</p> <p>针对这些问题，本文介绍了文献[23]中的马尔可夫状态模型和文献[24]中的状态转移和成本计算。掌握无人机在飞行过程中的特定生存概率，在此基础上修改搜索以匹配粒子群算法[25]。在进入任务区域之前，使用遗传算法[26,27]来获得穿越所有目标点的最短路径。仿真飞行平台通过每个目标点的最短路径来评估生存状态概率。为了设置被击中的状态概率的阈值，执行预处理以确定是否执行目标点。预处理完成后，采用基于禁忌搜索算法[28,29]和模拟退火算法的多无人机协同任务规划策略，获得任务区内各目标的执行顺序，以达到最佳的打击效果、最短的任务执行时间或最短的总距离。</p> <p><strong>第2节 问题设置</strong>，该模型由两部分组成：基于马尔科夫模型，利用遗传算法得到穿越所有目标的最短路径进行预处理；通过禁忌搜索算法和模拟退火算法进行任务规划。</p> <p><em>2.1 马尔可夫生存状态模型</em>，采用连续时间离散状态马尔可夫模型对无人机生存状态及其转移进行建模。本文讨论了五种生存状态[30]。根据不同区域设定的状态转移强度和转移代价，得到无人机的状态概率和生存成本。在航路规划的生存成本部分，与传统方法相比，该模型最大的优点是可以可视化无人机的生存成本和飞行状态。以下是五种状态、转移强度和生存成本计算的详细说明：</p> <p>无人机有五种状态，即未被发现（undetected, U）、已探测（detected, D）、被跟踪（tracked, T）、与敌人交战（engaged with the enemy, E）和命中（hit, H）[31]。状态转变只能发生在两个相邻的状态之间，并且这种转变是可逆的。例如，当无人机进入敌方探测雷达的射程时，飞机有一定的概率从U状态转换到D状态，当飞机飞回安全区时，也有一定的从D状态转换回U状态的概率。需要注意的是，只有状态H不具有可逆性，这意味着如果飞机移动到命中状态，它将始终处于该状态。</p> <p>传递强度设置，由于状态转移只能发生在相邻的状态之间，因此五种状态模型有七种状态转移，转移强度意味着空间中某一点从一种状态转移到另一种状态的概率。<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>λ</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub></mrow><annotation encoding="application/x-tex">\lambda_{ij}</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.69444em;"></span><span class="strut bottom" style="height:0.980548em;vertical-align:-0.286108em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">λ</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord mathit">i</span><span class="mord mathit" style="margin-right:0.05724em;">j</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>表示从状态<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>i</mi></mrow><annotation encoding="application/x-tex">i</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.65952em;"></span><span class="strut bottom" style="height:0.65952em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit">i</span></span></span></span>到状态<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>j</mi></mrow><annotation encoding="application/x-tex">j</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.65952em;"></span><span class="strut bottom" style="height:0.85396em;vertical-align:-0.19444em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.05724em;">j</span></span></span></span>的转移强度，为了突出不同威胁覆盖区域和安全区域对飞机的影响，需要设置不同的转移强度。例如，只有在探测雷达覆盖范围内，飞机才有可能被探测和跟踪，所以<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>λ</mi><mrow><mi>U</mi><mi>D</mi></mrow></msub></mrow><annotation encoding="application/x-tex">\lambda_{UD}</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.69444em;"></span><span class="strut bottom" style="height:0.84444em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">λ</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord mathit" style="margin-right:0.10903em;">U</span><span class="mord mathit" style="margin-right:0.02778em;">D</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>、<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>λ</mi><mrow><mi>D</mi><mi>T</mi></mrow></msub></mrow><annotation encoding="application/x-tex">\lambda_{DT}</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.69444em;"></span><span class="strut bottom" style="height:0.84444em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">λ</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord mathit" style="margin-right:0.02778em;">D</span><span class="mord mathit" style="margin-right:0.13889em;">T</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>、<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>λ</mi><mrow><mi>T</mi><mi>D</mi></mrow></msub></mrow><annotation encoding="application/x-tex">\lambda_{TD}</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.69444em;"></span><span class="strut bottom" style="height:0.84444em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">λ</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord mathit" style="margin-right:0.13889em;">T</span><span class="mord mathit" style="margin-right:0.02778em;">D</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>、<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>λ</mi><mrow><mi>D</mi><mi>U</mi></mrow></msub></mrow><annotation encoding="application/x-tex">\lambda_{DU}</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.69444em;"></span><span class="strut bottom" style="height:0.84444em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">λ</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord mathit" style="margin-right:0.02778em;">D</span><span class="mord mathit" style="margin-right:0.10903em;">U</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>的值都大于0。当探测雷达中没有武器雷达时。飞机离开交战状态的概率大于0。图1显示了在安全区域内，探测雷达和武器雷达的所有状态转移强度。</p> <p><img src="https://s1.ax1x.com/2020/09/07/wmT0Fx.png" alt="状态转换强度设置"></p> <p>转移强度的值设置为与距威胁中心的距离成反比。λ_{oij}、λ_{sij}、λ_{wij}分别表示安全区、探测雷达和武器雷达区域内从状态<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>i</mi></mrow><annotation encoding="application/x-tex">i</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.65952em;"></span><span class="strut bottom" style="height:0.65952em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit">i</span></span></span></span>到状态<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>j</mi></mrow><annotation encoding="application/x-tex">j</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.65952em;"></span><span class="strut bottom" style="height:0.85396em;vertical-align:-0.19444em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.05724em;">j</span></span></span></span>的最大转移强度值。由于不同的雷达具有不同的功能，不同类型雷达区域的状态间转移强度也不同。p点的转移强度值如式（1）所示。此设置可确保飞机离威胁区域中心越近，转移强度值将越高。</p> <p><img src="https://s1.ax1x.com/2020/09/07/wmTylD.png" alt="wmTylD.png"></p> <p>其中<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>r</mi></mrow><annotation encoding="application/x-tex">r</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.43056em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.02778em;">r</span></span></span></span>是威胁半径，<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>d</mi></mrow><annotation encoding="application/x-tex">d</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.69444em;"></span><span class="strut bottom" style="height:0.69444em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit">d</span></span></span></span>是飞机和威胁中心之间的欧几里德距离，传感器和武器代表雷达和武器雷达区域。</p> <p>敌方极有可能将探测雷达和武器雷达以重叠的形式分布在太空，并通过探测雷达向武器雷达提供威胁信息。由于覆盖同一区域的多个雷达比单个雷达更容易检测和跟踪，假设雷达相互独立地检测飞机，则被检测、未被检测和被跟踪的状态可视为独立泊松过程的总和。同时，对于多雷达重叠区域，飞机摆脱跟踪的概率应小于单个雷达覆盖区域。在这种情况下，雷达覆盖区可以看作是一个平行分量系统。被撞或被撞的可能性并不是因为雷达重叠区的数量，所以通常选择最坏的情况。</p> <p>综上所述，重叠区转移强度的计算方法如式（2）所示，λ1，λ2表示区域1和区域2的转移强度值。</p> <p><img src="https://s1.ax1x.com/2020/09/07/wmTcOH.png" alt="wmTcOH.png"></p> <p>状态概率为无人机提供了重要的决策支持。为了计算无人机在航路上各状态概率随时间的变化，应用马尔可夫链框架，首先构造转移强度矩阵∧（t），然后求解（3）所示的微分方程，得到状态概率向量p（t）。</p> <p><em>2.2 任务规划的最短路径</em>，遗传算法借鉴生物进化理论，将问题模拟成一个生物进化过程，通过遗传、交叉、变异、自然选择等逐步生成下一代解，剔除适应度函数值较低的解来增加适应度解。在N代进化之后，具有高适应度函数值的个体很可能会进化。</p> <p>遗传算法改进TSP问题的设计步骤如下。</p> <ol><li>初始化参数。</li> <li>随机产生一组个体的初始种群，评价每个个体的适应值。</li> <li>确定是否满足算法的收敛准则（这里是迭代次数）。如果满足，则输出搜索结果，否则，执行步骤[4–8]；</li> <li>进行选择操作（随机选择两个群体个体），运用轮盘赌的思想，根据概率大小随机返回当前组中某个个体的下标。</li> <li>杂交操作按杂交常数双种群概率<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>P</mi><mrow><mi>C</mi><mi>o</mi><mi>p</mi><mi>u</mi><mi>l</mi><mi>a</mi><mi>t</mi><mi>i</mi><mi>o</mi><mi>n</mi></mrow></msub></mrow><annotation encoding="application/x-tex">P_{Copulation}</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.969438em;vertical-align:-0.286108em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit" style="margin-right:0.13889em;">P</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.13889em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord mathit" style="margin-right:0.07153em;">C</span><span class="mord mathit">o</span><span class="mord mathit">p</span><span class="mord mathit">u</span><span class="mord mathit" style="margin-right:0.01968em;">l</span><span class="mord mathit">a</span><span class="mord mathit">t</span><span class="mord mathit">i</span><span class="mord mathit">o</span><span class="mord mathit">n</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>=0.8；</li> <li>小于突变概率的概率，经过变异处理（随机交换两个目标点的位置）。</li> <li>更新<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>S</mi><mi>o</mi><msub><mi>n</mi><mrow><mi>s</mi><mi>o</mi><mi>l</mi><mi>u</mi><mi>t</mi><mi>i</mi><mi>o</mi><mi>n</mi></mrow></msub><mo>[</mo><mo>]</mo></mrow><annotation encoding="application/x-tex">Son_{solution}[]</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.05764em;">S</span><span class="mord mathit">o</span><span class="mord"><span class="mord mathit">n</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord mathit">s</span><span class="mord mathit">o</span><span class="mord mathit" style="margin-right:0.01968em;">l</span><span class="mord mathit">u</span><span class="mord mathit">t</span><span class="mord mathit">i</span><span class="mord mathit">o</span><span class="mord mathit">n</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mopen">[</span><span class="mclose">]</span></span></span></span>和<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>C</mi><mi>a</mi><mi>l</mi><msub><mi>c</mi><mrow><mi>p</mi><mi>r</mi><mi>o</mi><mi>b</mi><mi>a</mi><mi>b</mi><mi>i</mi><mi>l</mi><mi>i</mi><mi>t</mi><mi>y</mi></mrow></msub><mo>(</mo><mi>G</mi><mo separator="true">,</mo><mi>t</mi><mi>o</mi><mi>t</mi><mi>a</mi><msub><mi>l</mi><mrow><mi>l</mi><mi>e</mi><mi>n</mi><mi>g</mi><mi>t</mi><mi>h</mi></mrow></msub><mo>)</mo></mrow><annotation encoding="application/x-tex">Calc_{probability}(G,total_{length})</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1.036108em;vertical-align:-0.286108em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.07153em;">C</span><span class="mord mathit">a</span><span class="mord mathit" style="margin-right:0.01968em;">l</span><span class="mord"><span class="mord mathit">c</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord mathit">p</span><span class="mord mathit" style="margin-right:0.02778em;">r</span><span class="mord mathit">o</span><span class="mord mathit">b</span><span class="mord mathit">a</span><span class="mord mathit">b</span><span class="mord mathit">i</span><span class="mord mathit" style="margin-right:0.01968em;">l</span><span class="mord mathit">i</span><span class="mord mathit">t</span><span class="mord mathit" style="margin-right:0.03588em;">y</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mopen">(</span><span class="mord mathit">G</span><span class="mpunct">,</span><span class="mord mathit">t</span><span class="mord mathit">o</span><span class="mord mathit">t</span><span class="mord mathit">a</span><span class="mord"><span class="mord mathit" style="margin-right:0.01968em;">l</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.01968em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord mathit" style="margin-right:0.01968em;">l</span><span class="mord mathit">e</span><span class="mord mathit">n</span><span class="mord mathit" style="margin-right:0.03588em;">g</span><span class="mord mathit">t</span><span class="mord mathit">h</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mclose">)</span></span></span></span>的路径；</li> <li>用“父子混合选择”（精英保留策略）更新小组；</li> <li>返回步骤2以确定是否执行下一个迭代。</li></ol> <p><em>2.3 协同任务规划模型</em>,协同任务规划的目标不仅是保证攻击效果，而且要使飞行时间尽可能短。模型的建立如式（6）所示。</p> <p><img src="https://s1.ax1x.com/2020/09/07/wmTT1S.png" alt="wmTT1S.png"></p> <p>其中，<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>R</mi></mrow><annotation encoding="application/x-tex">R</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.68333em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.00773em;">R</span></span></span></span>是协同任务飞机的数量，<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>A</mi></mrow><annotation encoding="application/x-tex">A</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.68333em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit">A</span></span></span></span>是路径集合，<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>i</mi></mrow><annotation encoding="application/x-tex">i</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.65952em;"></span><span class="strut bottom" style="height:0.65952em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit">i</span></span></span></span>和<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>j</mi></mrow><annotation encoding="application/x-tex">j</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.65952em;"></span><span class="strut bottom" style="height:0.85396em;vertical-align:-0.19444em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.05724em;">j</span></span></span></span>分别表示某条路径的起点和终点。<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msubsup><mi>c</mi><mrow><mi>i</mi><mi>j</mi></mrow><mi>r</mi></msubsup></mrow><annotation encoding="application/x-tex">c_{ij}^r</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.664392em;"></span><span class="strut bottom" style="height:1.059164em;vertical-align:-0.394772em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">c</span><span class="vlist"><span style="top:0.258664em;margin-left:0em;margin-right:0.05em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord mathit">i</span><span class="mord mathit" style="margin-right:0.05724em;">j</span></span></span></span><span style="top:-0.363em;margin-right:0.05em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle uncramped"><span class="mord mathit" style="margin-right:0.02778em;">r</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>是飞机<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>r</mi></mrow><annotation encoding="application/x-tex">r</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.43056em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.02778em;">r</span></span></span></span>通过<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>i</mi><mo separator="true">,</mo><mi>j</mi></mrow><annotation encoding="application/x-tex">i, j</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.65952em;"></span><span class="strut bottom" style="height:0.85396em;vertical-align:-0.19444em;"></span><span class="base textstyle uncramped"><span class="mord mathit">i</span><span class="mpunct">,</span><span class="mord mathit" style="margin-right:0.05724em;">j</span></span></span></span>段路径的攻击效果值。<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>L</mi></mrow><annotation encoding="application/x-tex">L</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.68333em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit">L</span></span></span></span>代表总飞行距离。ω是用于平衡攻击效果和总距离对结果的影响的系数。</p> <p>模型的决策变量是一个n×n的矩阵，<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>R</mi></mrow><annotation encoding="application/x-tex">R</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.68333em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.00773em;">R</span></span></span></span>是包含入口和出口的任务场景中所有节点的数目。<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>x</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub></mrow><annotation encoding="application/x-tex">x_{ij}</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.716668em;vertical-align:-0.286108em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">x</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord mathit">i</span><span class="mord mathit" style="margin-right:0.05724em;">j</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>值表示通过从节点<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mo>(</mo><mi>i</mi><mo>)</mo></mrow><annotation encoding="application/x-tex">(i)</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mopen">(</span><span class="mord mathit">i</span><span class="mclose">)</span></span></span></span>到节点<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mo>(</mo><mi>j</mi><mo>)</mo></mrow><annotation encoding="application/x-tex">(j)</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mopen">(</span><span class="mord mathit" style="margin-right:0.05724em;">j</span><span class="mclose">)</span></span></span></span>的路径的飞机序列号。实际上，为了更好地表达模型的约束条件，决策变量应该设置为R×n×n的三维二元变量，但为了压缩决策变量的规模，提高模拟求解的效率，采用以下方法：<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>x</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub><mo>=</mo><mi>r</mi></mrow><annotation encoding="application/x-tex">x_{ij}=r</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.716668em;vertical-align:-0.286108em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">x</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord mathit">i</span><span class="mord mathit" style="margin-right:0.05724em;">j</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mrel">=</span><span class="mord mathit" style="margin-right:0.02778em;">r</span></span></span></span>表示飞机通过<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mo>(</mo><mi>i</mi><mo separator="true">,</mo><mi>j</mi><mo>)</mo></mrow><annotation encoding="application/x-tex">(i,j)</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mopen">(</span><span class="mord mathit">i</span><span class="mpunct">,</span><span class="mord mathit" style="margin-right:0.05724em;">j</span><span class="mclose">)</span></span></span></span>段路径，<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>x</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub><mo>=</mo><mn>0</mn></mrow><annotation encoding="application/x-tex">x_{ij}=0</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.64444em;"></span><span class="strut bottom" style="height:0.9305479999999999em;vertical-align:-0.286108em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">x</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord mathit">i</span><span class="mord mathit" style="margin-right:0.05724em;">j</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mrel">=</span><span class="mord mathrm">0</span></span></span></span>表示没有飞机通过<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mo>(</mo><mi>i</mi><mo separator="true">,</mo><mi>j</mi><mo>)</mo></mrow><annotation encoding="application/x-tex">(i,j)</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mopen">(</span><span class="mord mathit">i</span><span class="mpunct">,</span><span class="mord mathit" style="margin-right:0.05724em;">j</span><span class="mclose">)</span></span></span></span>段路径。在模型和后续约束的表达式中，利用<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>x</mi><mi>r</mi></msub></mrow><annotation encoding="application/x-tex">x_r</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.58056em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">x</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit" style="margin-right:0.02778em;">r</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>将决策变量<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>x</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub></mrow><annotation encoding="application/x-tex">x_{ij}</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.716668em;vertical-align:-0.286108em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">x</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord mathit">i</span><span class="mord mathit" style="margin-right:0.05724em;">j</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>转换为R×n×n维二元变量。</p> <p>根据任务区规划的要求，约束条件如等式(7)—(15)所示：</p> <p><img src="https://s1.ax1x.com/2020/09/07/wmTL0s.png" alt="wmTL0s.png"></p> <p>等式(7) —(8)要求每架飞机必须从入口飞入该区域，并从出口飞出该区域。O表示入口节点，d表示出口节点。公式(9)保证了每次飞行的连续性。<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>N</mi></mrow><annotation encoding="application/x-tex">N</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.68333em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.10903em;">N</span></span></span></span>表示包含入口、出口和所有其他节点的集合。由于每架飞机可携带的武器数量有限。式(10)要求每架飞机可以使用的武器数量不超过每艘航空母舰武器的最大数量。M是目标集，<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>S</mi><mi>m</mi></msub></mrow><annotation encoding="application/x-tex">S_m</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit" style="margin-right:0.05764em;">S</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.05764em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">m</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>是目标<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>m</mi></mrow><annotation encoding="application/x-tex">m</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.43056em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit">m</span></span></span></span>的扇区集，<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>A</mi><mi>s</mi></msub></mrow><annotation encoding="application/x-tex">A_s</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">A</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">s</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>是攻击节点的节点路径集。φm是攻击节点<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>m</mi></mrow><annotation encoding="application/x-tex">m</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.43056em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit">m</span></span></span></span>所需的武器数量。φ是飞机<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>r</mi></mrow><annotation encoding="application/x-tex">r</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.43056em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.02778em;">r</span></span></span></span>可以携带的最大武器数量。等式。(11)、(12)保证每个目标只被攻击一次并被照亮。是目标为照明节点的节点的路径集。式(13)描述了照明和攻击的空间同步。S是所有扇区的集合。等式。(14)–(15)描述了照明和攻击的时间同步，同时也保证照明节点和攻击节点只被一个目标激活。<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>N</mi><mrow><mi>a</mi><mi>m</mi></mrow></msub></mrow><annotation encoding="application/x-tex">N_{am}</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit" style="margin-right:0.10903em;">N</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.10903em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord mathit">a</span><span class="mord mathit">m</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>和<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>N</mi><mrow><mi>i</mi><mi>m</mi></mrow></msub></mrow><annotation encoding="application/x-tex">N_{im}</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit" style="margin-right:0.10903em;">N</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.10903em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord mathit">i</span><span class="mord mathit">m</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>分别表示目标m的攻击节点集和照明节点集。<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msubsup><mi>t</mi><mi>m</mi><mi>A</mi></msubsup></mrow><annotation encoding="application/x-tex">t^A_m</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.8413309999999999em;"></span><span class="strut bottom" style="height:1.088331em;vertical-align:-0.247em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">t</span><span class="vlist"><span style="top:0.247em;margin-left:0em;margin-right:0.05em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">m</span></span></span><span style="top:-0.363em;margin-right:0.05em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle uncramped"><span class="mord mathit">A</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>和<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msubsup><mi>t</mi><mi>m</mi><mi>I</mi></msubsup></mrow><annotation encoding="application/x-tex">t^I_m</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.8413309999999999em;"></span><span class="strut bottom" style="height:1.088331em;vertical-align:-0.247em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">t</span><span class="vlist"><span style="top:0.247em;margin-left:0em;margin-right:0.05em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">m</span></span></span><span style="top:-0.363em;margin-right:0.05em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle uncramped"><span class="mord mathit" style="margin-right:0.07847em;">I</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>分别表示被攻击和被照亮的访问时间范围<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>m</mi></mrow><annotation encoding="application/x-tex">m</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.43056em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit">m</span></span></span></span>。<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>t</mi><mi>i</mi></msub></mrow><annotation encoding="application/x-tex">t_i</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.61508em;"></span><span class="strut bottom" style="height:0.76508em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">t</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>是节点<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>i</mi></mrow><annotation encoding="application/x-tex">i</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.65952em;"></span><span class="strut bottom" style="height:0.65952em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit">i</span></span></span></span>的访问时间范围，同一目标被攻击和被照亮的时间范围要求有一个交叉口。</p> <p>由上可知，决策变量的大小[33]非常大。以图2.1所示的三个目标的场景为例。共有13个可用扇区，其中入口和出口共有41个节点。决策变量有超过1600个维度和1500多个约束。当目标数量增加时，规模将呈几何级数增长。传统的线性规划方法无疑是低效且难以实现的，因为本文采用了元启发式搜索算法来寻求有效的优化结果。</p> <p><img src="https://s1.ax1x.com/2020/09/07/wm7CX4.png" alt="wm7CX4.png"></p> <p>大量约束的存在导致了大量的解，但可行解所占的比例很小。如果采用基于种群的随机搜索算法，如粒子群优化算法（PSO），则很容易陷入局部最优。因此，采用基于个体的元启发式搜索算法。设置每个个体的邻域将大大减少无效解的工作。</p> <p>同时，为了进一步缩小目标的规模，对协同任务规划的三个部分采用嵌套搜索策略。扇区的确定分为搜索外层，目标分配分为搜索内层。当扇区确定后，包括入口和出口的可用节点数减少到11个，而决策变量的规模从1600个减少到150个，可以有效地提高搜索效率。外层和内层分别使用以下搜索算法。</p> <p>禁忌搜索算法通过搜索当前解的邻域来获得新的最优邻域，避免了通过禁忌表进行循环搜索。在确定扇区时，选择每个目标的扇区作为搜索目标，如式（16）所示：</p> <p><img src="https://s1.ax1x.com/2020/09/07/wm7inJ.png" alt="wm7inJ.png"></p> <p>x为外搜索结果，M为目标个数，si为目标i激活的扇区数，λi为目标i的扇区数，每个目标理论上包含6个扇区。由于现场有民用建筑，部分地段不允许启用。λi是可用扇区的数量。</p> <p>目标i的当前扇区si的邻域为左侧的第一可用扇区和右侧的第一可用扇区，如图2左侧所示，阴影部分为当前扇区，其邻域为灰色部分。剩余的目标区域是当前区域的目标，每个区域的目标都是固定的。以2个目标的场景为例，每个解决方案应该有22个邻居。图2中具体示出了邻域。</p> <p>该问题的求解规模不大，直接将搜索对象作为禁忌对象。每次迭代产生的最优解作为下一次迭代的新解，存储在禁忌表中。首先，我们应该确认这个解决方案是否存在于禁忌表中，然后再将它作为一个新的解决方案。此外，禁忌长度的设置与场景中目标的数量成比例。目标越多，禁忌长度就越长，防止搜索陷入循环。</p> <p>扇区确定问题的禁忌搜索步骤如下：</p> <ol><li>初始化解，将每个目标的扇区设置为1，存储在禁忌表中，禁忌长度设置为目标数的三倍。</li> <li>搜索当前解的所有不存在禁忌的邻域，然后计算适应度值，得到新解的最优邻域。</li> <li>将新的解存储在禁忌表中，更新禁忌表中存储的迭代次数，并对迭代次数达到禁忌长度的对象解除阻塞。</li> <li>满足迭代结束条件，然后退出，否则返回步骤2。</li></ol> <p>在确定外部扇区后，剩余在内层的目标分配问题的规模缩减为m*m，扇区确定后每个目标只有3个节点，因此m=3t+2，t为目标个数。尽管如此，搜索空间仍然很大。以3个目标和4架飞机为例，有4121种解决方案，但只有2800万个有效解决方案。由于搜索空间很大，有效解的比例很低，而且容易陷入局部最优。内搜索算法采用模拟退火算法，这种算法基于单个扰动解的生成，能够以一定的概率接受相对较低的解，这使得它比其他搜索算法有更多的优势。高概率跳出局部最优，收敛到全局最优解。因此，模拟退火算法非常适合于空间搜索的特点。</p> <p>在内搜索问题中，模拟退火扰动解的生成方法非常重要。传统的扰动方法是用单变量的扰动解，或随机交换两个变量的值。由于搜索空间大、有效解率极低而导致的搜索效率低的问题无法得到解决。</p> <p>根据问题的实际情况，将干扰解的生成分为三个部分：（1）飞机组合的变化；（2）照明节点的变化；（3）目标攻击顺序的变化。飞机组合的变化是指攻击和飞机照明的组合变化。照明节点的更改是指照明路径方向的更改。以上两种方法都是针对随机选择的单个目标。以上三个变化涵盖了所有可能的有效解决方案。每次产生扰动解时，按一定概率随机选取三种方法中的一种。其余部分不变。由于飞机组合的数量变化很大，因此这种方法在三种方法中占有很大比例。根据飞机组合、光照节点、攻击序列和外层确定的扇区信息，生成摄动解。这种有目的的随机扰动使模拟退火算法比单变量随机扰动或多变量的随机交换更有效。</p> <p>内部搜索算法的目标函数如下：</p> <p><img src="https://s1.ax1x.com/2020/09/07/wm7EA1.png" alt="wm7EA1.png"></p> <p>在式(17)中，当x为有效解时，选择上式；当x为非有效解时，选择下式。</p> <p>如果解满足(7)-(15)中的所有约束条件，则它是一个有效解。如果违反了任何约束，则它是无效的解决方案。<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>C</mi><mrow><mi>m</mi><mi>a</mi><mi>x</mi></mrow></msub></mrow><annotation encoding="application/x-tex">C_{max}</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit" style="margin-right:0.07153em;">C</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.07153em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord mathit">m</span><span class="mord mathit">a</span><span class="mord mathit">x</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>是无效解的惩罚系数，通常取大的正整数值。</p> <p>综上所述，内目标分配的模拟退火搜索步骤如下：</p> <ol><li>初始化，随机生成目标攻击序列、飞机组合和灯光节点，根据外部搜索结果生成初始解，设置初始温度T=100。</li> <li>按一定概率随机选取一种摄动方法，产生摄动解，并按Metropolis准则接受摄动解。</li> <li>满足当前温度下的迭代结束条件，进行步骤4；否则，返回步骤2；</li> <li>降低温度，如果温度降到最低温度，则搜索结束并返回结果；否则，返回步骤1。</li></ol> <p>在模拟退火的高温搜索阶段，接受较差扰动解的概率较大，且在当前解的大范围邻域内的解可以被接受。因此，这一阶段主要是水平搜索阶段。温度越低，出现次扰动解的概率越小，这是逐步收敛到全局最优解的过程。</p> <p><strong>第3节 基于集成Markov模型的协同任务规划仿真结果与分析</strong>，基于马尔可夫模型的禁忌搜索和模拟退火算法是一种安全有效的任务规划方法。这些结果表明，当无人机同时进行航路规划和任务规划时，无人机的生存能力显著提高。</p> <p><em>3.1 参数设置</em>, 该方案集成了动态路径规划和协同任务规划。参数设置见表1。<br>
表2显示了应用于模拟实验的马尔可夫生存模型中状态转移强度的设置。</p> <p>从表中可以看出，飞机有被单个探测雷达探测跟踪的概率，不会被攻击，当飞机处于单武器雷达中时，飞机不会被探测和跟踪，但有一定的概率会转移到交战状态。</p> <p><em>3.2 综合场景仿真</em>,综合场景如图3所示，由动态路径规划和协同任务规划两部分组成。动态路径规划部分主要从任务区的起点和入口，从任务区的出口到场景的终点，主要采用粒子群优化算法（PSO）进行路径规划。本文主要介绍了飞行任务规划，因此在这里不作说明。</p> <p><em>3.3 任务规划的最短路径</em>,在任务区建立Markov生存状态模型后，飞行平台每一时刻的状态都与前一时刻的状态有关，因此计算飞行平台的状态概率与飞行器的飞行轨迹有关。<br>
在任务区，利用遗传算法对TSP（旅行商问题）问题进行改进，得到一条穿越所有目标点的最短路径，如图4所示。</p> <p><img src="https://s1.ax1x.com/2020/09/07/wm7Vtx.png" alt="wm7Vtx.png"></p> <p>根据飞行平台，飞行路径沿最短路径遍历所有目标点，进行预处理，得到每个目标点通过时飞机的状态概率值。由于被击落的任务目标点的状态概率值较大，会影响下一个任务目标点的执行。然后在任务规划前先进行预处理，设定被击落概率值的阈值，确定目标点是否被执行。这样可以确保更高程度地完成整个任务。</p> <p><em>3.4 基于马尔可夫模型的任务规划</em>,</p> <p><em>3.5 协同任务规划仿真结果与分析</em></p> <p><strong>结论</strong>：本文充分考虑了多机协同任务规划中的多目标协同规划问题。提出了一种改进的模拟退火算法和禁忌搜索算法。两层任务规划模型解决了多目标多飞机的任务规划问题。同时，进一步将任务模型与马尔可夫链模型相结合。在任务规划之前，通过预处理判断飞行平台的生存状态概率，从而优化任务规划方案，提高飞机的生存率。该方法在一定程度上结合了航路规划问题和任务规划问题，考虑了影响飞行平台的各种因素。针对这个NP问题，我们需要进一步探索一种更为优化的解决方案。</p> <h2 id="_2017🌗-无人机优先区域监视的启发式学习算法"><a href="#_2017🌗-无人机优先区域监视的启发式学习算法" class="header-anchor">#</a> [2017🌗]无人机优先区域监视的启发式学习算法</h2> <p>9月6日阅，论文名称：A Heuristic Learning Algorithm for Preferential Area Surveillance by Unmanned Aerial Vehicles，《Journal of Intelligent &amp; Robotic Systems》，作者来自<em>印度科学研究所</em>，<a href="https://wws.lanzous.com/if1mSgexu3g" target="_blank" rel="noopener noreferrer">论文查看<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a>。</p> <blockquote><p><strong>摘要</strong>：针对无人机持续优先监视问题，提出了一种启发式学习算法。该算法帮助无人机在已知区域内按照定量优先级规范执行监视。它允许以无人机对每个区域的访问百分比或每个区域内监视时间的百分比来指定区域优先级。此外，该算法提高了在未知区域检测目标的可能性。被探测目标的邻近区域被怀疑是目标检测的高可能性区域，无人机据此规划其路径以验证这种怀疑。与使用目标信息相似，该算法利用风险信息来减少对风险区域的访问频率。在已有的几何强化学习技术的基础上，提出了利用风险图规避风险区域的方法。仿真结果表明了该算法的有效性。</p></blockquote> <p>关键词：<em>Persistent surveillance</em>（持续监视）；<em>Preferential surveillance</em>（优先监视）；<em>Learning</em>（学习）；<em>UAV</em>（无人机）；<em>Target detection</em>（目标探测）</p> <p><strong>第1节 引言</strong>，外部、内部安全和商业应用，如作战情报任务、暴乱监控和交通管制，都要求对特定区域进行持续的空中监视。无人机（UAV）是此类持续空中监视应用的潜在候选设备。持续的监视问题被称为巡逻或连续扫描覆盖问题。这些问题要求无人机对整个区域进行连续观测，以便在监视期间将该区域任何部分的最大用时（即最大未观测时间）保持在最小值[1]。换言之，无人机必须根据监视区域每个部分的用时，随时规划自己的飞行路线。求解无人机路径规划问题的最优解，不可能在多项式时间内验证解。由于持续监视问题是NP-hard问题，次优解技术被广泛应用于解决该问题。这些问题已经用反应式策略[1]、启发式方法[2]、近似动态规划[3]、运筹学的精确方法[4]、图论[5]、最优控制[6]、无记忆控制设计[7]、基于自动机的技术[8]和生物启发策略[9]。它们是根据飞机性能约束[6]、无人机系统健康和安全约束[1–3，7]、通信约束[3]以及电池充电时间和时间逻辑约束[8]制定的。关于持续监测问题的详细回顾见<sup class="footnote-ref"><a href="#fn1" id="fnref1">[1]</a></sup>。</p> <p>通常需要通过使用事先获得的关于目标和威胁的空间分布的先验信息或动态估计来执行持续的优先区域监视。一般来说，上面提到的问题都是预先定义好的利益和风险区域。在实际应用中，监测环境的先验信息是不完备的，具有不确定性。为了在这样的环境中执行任何任务，无人机应该能够在飞行中了解环境，并使用所获得的信息来规划未来的行动。对于一个持续的监视任务，无人机必须动态地了解目标和威胁的空间分布，并据此确定监视区域的优先区域和危险区域，并利用这些信息随时规划其路径。</p> <p>学习技术在解决空中监视问题中有许多应用。有监督、无监督、半监督和强化学习技术构成了机器学习技术的广泛分类。它们分别用于解决分类、聚类、实际学习和面向目标的智能体问题。为了解决协同无人机的路径规划问题，提出了一种几何强化学习技术，给出了它们的源点和目的点[13]。该技术制定了一个目标函数，该函数考虑了无人机的飞行距离和监视环境的风险图。无人机遇到的风险可能是由于诸如地对空导弹基地或高射炮，或其他飞机的威胁。但是，通过探索学习的事实可能会危及无人机的安全。集成的合作计划和学习技术已经被开发出来，以减少与这种学习过程相关的风险[14]。</p> <p>以序列记忆器的名义开发了一种机器学习器，使无人机能够在城市环境中跟踪目标[15]。它利用以前的观测数据预测未来目标的位置。当无人机必须在城市环境中跟踪动态目标时，它们的视线通信能力会受到限制，这个问题已经通过学习得到解决[16]。使用分散多智能体马尔可夫决策过程（Dec-MMDP）和增量特征依赖发现（iFDD）方法实时学习一组异构智能体的健康模型[17]。</p> <p>结合集中式学习的性能优势和分散式学习的效率，开发了一种机会学习方法[18]。基于概率的学习技术[19]与博弈论概念（如协商[20]和拍卖机制）一起被发展用来解决无人机协同控制问题。有动机的学习算法已经与人类启发的自主控制器一起使用，这样代理可以自主地设定目标、即兴发挥、创新和想象[21]。一种分布式学习和规划方法已经被开发出来，用于在不确定的环境中使用具有可修改边缘权值的在线近似函数来学习目标位置[22]。</p> <p>学习技术在持续监测问题中的应用非常有限。在马尔科夫决策过程（MDP）框架中，使用主动学习来学习燃油消耗模型参数，以便在持续监视区域内维持所需的无人机数量[23]。这个问题的重点是从基站到监视区域的过渡，而不是了解监视环境本身。文献[24]提出了一种基于学习的优先监视算法。该问题的主要目标是在动态目标和不确定威胁的监视环境中，利用学习来提高目标检测的概率。与[24]相比，这项工作最显著的区别在于，对已知区域的优先监视问题给予了更多的关注。针对这一问题的解决方案是考虑到定量优先级规范的不同方式而建立的。本文对求解方法进行了较为清晰的阐述。除此之外，还扩展了仿真结果以支持更详细的分析。我们坚信，对已知区域的优先监视问题进行更详细的分析，将有助于改进未知区域目标检测问题的学习算法。</p> <p>在本研究中，我们发展一个启发式学习演算法来解决这个问题。地面监视区域被离散成二维平面网格。在考虑验证算法有效性的任务场景中，假设目标车辆进入监视区域，遵循预定轨迹，退出监视区域，并重复其轨迹。算法的工作原理如下。当无人机在特定网格点上方飞行时，如果检测到目标，则无人机会为该点分配更高的优先权，并对8连通邻域分配折扣优先权。然后，无人机规划其路径，使其访问这些点的频率比其他网格点由于优惠待遇。在随后的时间步中，如果没有在任何邻域点检测到目标，则会消除对该点的偏好。在连续的目标事件中，该算法有助于提高目标检测概率。该算法激励无人机避免飞过具有类似效果的威胁。</p> <p>本文的主要贡献如下。（1）提出了一种新的启发式学习算法，该算法在已知环境下根据需要进行优先监视，提高了未知环境下目标检测的概率。（2）它利用无人机当前位置与所有其他网格点之间的积分风险计算来计算风险地图，从而激励无人机避开危险区域。</p> <p><strong>第2节 问题定义</strong>，在<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>N</mi><mo>×</mo><mi>M</mi></mrow><annotation encoding="application/x-tex">N \times M</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.76666em;vertical-align:-0.08333em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.10903em;">N</span><span class="mbin">×</span><span class="mord mathit" style="margin-right:0.10903em;">M</span></span></span></span>二维网格世界中，无人机必须使区域的最大用时最小，该区域由下式决定：</p> <p><img src="https://s1.ax1x.com/2020/09/07/wn1GOx.png" alt="wn1GOx.png"></p> <p>在受访问频率限制的任何时候<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>t</mi></mrow><annotation encoding="application/x-tex">t</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.61508em;"></span><span class="strut bottom" style="height:0.61508em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit">t</span></span></span></span>:</p> <p><img src="https://s1.ax1x.com/2020/09/07/wn1Icn.png" alt="wn1Icn.png"></p> <p>式中，<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>A</mi><mi>R</mi></msub></mrow><annotation encoding="application/x-tex">A_R</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">A</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit" style="margin-right:0.00773em;">R</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>代表用时地图，即无人机对每个网格点进行的“自上次访问以来经过的时间”的<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>N</mi><mo>×</mo><mi>M</mi></mrow><annotation encoding="application/x-tex">N \times M</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.76666em;vertical-align:-0.08333em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.10903em;">N</span><span class="mbin">×</span><span class="mord mathit" style="margin-right:0.10903em;">M</span></span></span></span>矩阵[1]（该定义意味着当无人机位于该点（p，q）时，<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>A</mi><mrow><mi>p</mi><mo separator="true">,</mo><mi>q</mi></mrow></msub></mrow><annotation encoding="application/x-tex">A_{p,q}</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.969438em;vertical-align:-0.286108em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">A</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord mathit">p</span><span class="mpunct">,</span><span class="mord mathit" style="margin-right:0.03588em;">q</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>的值为零），<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>R</mi></mrow><annotation encoding="application/x-tex">R</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.68333em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.00773em;">R</span></span></span></span>表示监视区域，（i，j）指属于R的网格点，<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>R</mi><mi>P</mi></msub></mrow><annotation encoding="application/x-tex">R_P</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit" style="margin-right:0.00773em;">R</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.00773em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit" style="margin-right:0.13889em;">P</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>是有序对的集合（i，j）属于严格地说是监视区域R的子集的优选区域，<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>F</mi><mi>r</mi></msub></mrow><annotation encoding="application/x-tex">F_r</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit" style="margin-right:0.13889em;">F</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.13889em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit" style="margin-right:0.02778em;">r</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>是对某个区域<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>R</mi></mrow><annotation encoding="application/x-tex">R</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.68333em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.00773em;">R</span></span></span></span>的访问频率，<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>R</mi><mn>1</mn></msub></mrow><annotation encoding="application/x-tex">R_1</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit" style="margin-right:0.00773em;">R</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.00773em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathrm">1</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>表示没有优选区域的监视区域，<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>M</mi><mrow><msub><mi>R</mi><mi>P</mi></msub></mrow></msub></mrow><annotation encoding="application/x-tex">M_{R_P}</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.93833em;vertical-align:-0.255em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit" style="margin-right:0.10903em;">M</span><span class="vlist"><span style="top:0.15000000000000002em;margin-right:0.05em;margin-left:-0.10903em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord"><span class="mord mathit" style="margin-right:0.00773em;">R</span><span class="vlist"><span style="top:0.15em;margin-right:0.07142857142857144em;margin-left:-0.00773em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-scriptstyle scriptscriptstyle cramped"><span class="mord mathit" style="margin-right:0.13889em;">P</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>表示优选区域（因此大于1）的相对访问倍增因子，RT是属于威胁或风险区域的有序对集（i，j），严格地说是R1的子集，即优选区域和风险区域是互斥的，R2表示没有风险区域的R1，<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>M</mi><mrow><msub><mi>R</mi><mi>T</mi></msub></mrow></msub></mrow><annotation encoding="application/x-tex">M_{R_T}</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.93833em;vertical-align:-0.255em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit" style="margin-right:0.10903em;">M</span><span class="vlist"><span style="top:0.15000000000000002em;margin-right:0.05em;margin-left:-0.10903em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord"><span class="mord mathit" style="margin-right:0.00773em;">R</span><span class="vlist"><span style="top:0.15em;margin-right:0.07142857142857144em;margin-left:-0.00773em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-scriptstyle scriptscriptstyle cramped"><span class="mord mathit" style="margin-right:0.13889em;">T</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>表示威胁区域的相对访问倍增因子（因此，小于1）。访问频率是指在一定时间内每个网格点对某个区域的访问次数。对于一个威胁区域，MRT小于1，并不意味着在威胁区域进行高监视时间是不可能的。如果无人机必须从某个威胁区域收集更多的数据来中和它，则必须将该区域定义为首选监视区域。</p> <p>该问题中的决策变量是无人机在每一时刻做出的目的地选择。最大年龄的最小化是通过选择无人机的目的地<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mo>(</mo><msub><mi>i</mi><mi>d</mi></msub><mo separator="true">,</mo><msub><mi>j</mi><mi>d</mi></msub><mo>)</mo><mo>∈</mo><mi>R</mi></mrow><annotation encoding="application/x-tex">(i_d,j_d) \in R</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mopen">(</span><span class="mord"><span class="mord mathit">i</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">d</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mpunct">,</span><span class="mord"><span class="mord mathit" style="margin-right:0.05724em;">j</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.05724em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">d</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mclose">)</span><span class="mrel">∈</span><span class="mord mathit" style="margin-right:0.00773em;">R</span></span></span></span>，在一个时刻t，使得该区域的最大年龄<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>t</mi><mo>+</mo><mi>δ</mi><mi>t</mi></mrow><annotation encoding="application/x-tex">t+\delta t</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.69444em;"></span><span class="strut bottom" style="height:0.77777em;vertical-align:-0.08333em;"></span><span class="base textstyle uncramped"><span class="mord mathit">t</span><span class="mbin">+</span><span class="mord mathit" style="margin-right:0.03785em;">δ</span><span class="mord mathit">t</span></span></span></span>最小。这里，δt是无人机从当前位置（xu，yu）∈R，到目的地（id，jd）所用的时间。</p> <p>以上是本文提出的连续更复杂场景的广义问题公式。无人机的目标是在监视区域内最小化属于离散平面网格的任何网格点的年龄。同时，无人机必须增加对首选区域RP的访问频率，降低对有威胁区域RT的访问频率。（1）首选区域和威胁区域是预定义的。区域偏好度RP被指定为对该区域网格点进行访问的百分比，或在该区域内花费的监视时间的百分比。（2）区域RP和RT必须由飞行中的无人机进行分类。它们可以是动态变化的，而且该地区的威胁所构成的风险存在不确定性，第二个公式比第一个公式更实用。</p> <p><strong>第3节 解决方法</strong>，这个问题的解决方案是逐步建立起来的。<br>
首先，利用启发式算法解决了无优先区域和威胁区域的持续监视问题。然后，针对预先设定的固定目标区域，提出了一种优先监视算法。然后，考虑了预先确定的固定目标区域和初始未知威胁区域的优先监视问题。最后，针对未知、动态目标区域和初始未知威胁的问题，提出了一种学习算法。这种求解方法有以下假设。（i） 无人机在监视区域内的平面运动（即在恒定高度上）已使用方程（Eqs）给出的运动方程进行了建模。4和5不考虑转弯速度限制。</p> <p><img src="https://s1.ax1x.com/2020/09/07/wn3sC4.png" alt="wn3sC4.png"></p> <p>式中，（x，y）是表示无人机在网格世界中的位置的有序对，V是车辆速度，ψ是车辆航向。这种简单化的模型假设并不妨碍学习算法的使用，这是本工作的主要目标。（ii）不考虑风和湍流等环境影响对飞机运动的影响。（iii）如图1所示，网格点彼此间隔一个单位距离。（iv）假设无人机有效载荷为光电式，在地面上有圆形足迹。传感半径rs取1/√2个单位，如下图所示。这一假设确保了传感器占地面积完美地包含1×1平方，并证明了在网格世界中表述问题的合理性。（v） 无人机速度取为单位时间内的单位距离。<br>
（vi）当无人机在距离该网格点0.05个单位的径向距离内通过时，该网格点被称为访问过。（vii）当目标或威胁出现在传感器覆盖范围内时，假设成像传感器能够即时检测到目标或威胁。可以看出，问题的形成和解决方法是现实的任务环境，而不是车辆本身。</p> <p><img src="https://s1.ax1x.com/2020/09/07/wn3Wb6.png" alt="问题中的假设"></p> <p><em>3.1 持续监视问题</em><br> <em>3.2 对已知的固定目标区域进行优先持续监视</em><br> <em>3.3 已知、固定目标区域和初始未知威胁的优先监视问题</em></p> <p><strong>第4节 仿真结果与分析</strong>，利用MATLAB在10×10网格上实现并测试了该算法，证明了该算法在上述四种情况下的有效性。模拟条件如下。除非另有说明，无人机的初始点为（1,1）。对第3.3节和第3.4节中讨论的情况模拟威胁。所有栅格点的初始年龄设置为25。GFRN和σm设为1。模拟以0.1个时间单位的时间间隔执行。每种情况下的模拟条件分别解释。</p> <p><strong>结论和今后的工作</strong>：提出了一种求解动态目标和不确定威胁环境下优先监视问题的启发式学习算法，并通过仿真进行了评估。此外，这项工作提出了一种定量的偏好分配技术，在已知的监测区域的不同区域。该算法在提高未知监视区域内目标检测概率方面的优势也得到了证明。无人机动力学的实现必须进行现实的研究。对优先监视问题的结果分析表明，需要使用多个无人机来更有效地解决该问题。因此，有必要对该方法的计算复杂度进行估计，并研究降低计算量的方法，这将有助于该算法在大规模问题中的应用。该学习算法可以进一步改进，以最短的时间定位目标。</p> <h2 id="_2015🌘-基于回归动态规划的小型无人机目标跟踪随机优化协调"><a href="#_2015🌘-基于回归动态规划的小型无人机目标跟踪随机优化协调" class="header-anchor">#</a> [2015🌘]基于回归动态规划的小型无人机目标跟踪随机优化协调</h2> <div class="custom-block danger"><p class="custom-block-title">困难</p> <p>这篇论文很长，而且用了很多数学推导，其中大部分是概率论知识，所以如果要看的话得做好啃1周的准备。</p></div> <p>9月7日阅，论文名称：Stochastic Optimal Coordination of Small UAVs for Target Tracking using Regression-based Dynamic Programming，《Journal of Intelligent &amp; Robotic Systems》，作者来自<em>加利福尼亚大学</em>，<a href="https://wws.lanzous.com/iDZnUgfdkyd" target="_blank" rel="noopener noreferrer">论文查看<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a>。</p> <blockquote><p><strong>摘要</strong>：我们研究了多架固定翼无人机进行基于视觉的目标跟踪的优化协调问题，这意味着无人机的任务是收集不可预测地面目标的最佳联合视觉测量值。我们使用与目标位置融合测量相关的误差协方差的解析表达式，并且我们对所有车辆使用随机的四次方模型，从而将高度真实性融入到问题公式中。虽然动态规划可以产生一个最优的控制策略，使融合后的地理定位误差协方差随时间变化的期望值最小化，但由于维数灾难，它伴随着巨大的计算挑战。为了克服这一挑战，我们提出了一种新的策略生成技术，该技术将基于仿真的策略迭代与鲁棒回归方案相结合。与其它方法相比，该控制策略具有明显的优势，表明最优控制策略包括协调无人机与目标的距离而不是其视角，这是目标跟踪中的常见做法。</p></blockquote> <p>关键词：<em>Target tracking</em>（目标跟踪）；<em>Unmanned aerial vehicle</em>（无人机）；<em>Autonomous vehicle</em>（自主飞行器）；<em>Regression Monte Carlo</em>（回归蒙特卡罗）；<em>Motion planning</em>（运动规划）；<em>Probabilistic planning</em>（概率规划）</p> <p><strong>第1节 引言</strong>，小型无人机（UAV）是一种相对廉价的移动传感平台，能够可靠地、自主地执行许多任务，如测绘、搜索和救援、监视和跟踪以及实时监控。一个特别令人感兴趣的问题是使用小型固定翼无人机执行基于视觉的目标跟踪，这就要求一个或多个配备摄像头的无人机负责自主跟踪移动的地面目标。</p> <p>在基于视觉的目标跟踪中，图像处理软件确定在图像帧中运动的目标的质心像素坐标。给定这些像素坐标，摄像机的内、外参数，以及地形数据，可以估计目标在惯性坐标系中的三维位置，并计算相关误差协方差。这是摄像机的地理定位过程[1]。定位误差对无人机相对于目标的相对位置非常敏感。当无人机远离目标时，相对于其高于目标的高度，相关误差协方差在观察方向上显著延长。当无人机直接在目标上方时，最小的地理定位误差出现，在这种情况下，相关的协方差是圆形的。理想情况下，无人机会直接悬停在目标上方，以尽量减小误差，但无人机和目标之间的相对动态特性通常会使该观察位置无法保持一段时间。</p> <p>为了减轻单个无人机无法保持接近目标的影响，可以使用多个无人机来收集最佳的<em>联合</em>测量值。在这种情况下，目标是最小化融合单个地理位置测量得到的目标位置估计的<em>融合</em>地理位置误差协方差。因此，在这项工作中，我们寻求两个无人机之间的最佳协调行为，以提高对目标状态的估计。</p> <p>当至少有一架无人机靠近目标时，融合后的定位误差很小；当两架飞机都在目标正上方时，融合定位误差较小。当两个无人机相对于其高度都离目标较远时，当无人机具有正交视角时，融合的地理定位误差会大大减小，尽管这个误差仍然比至少有一个无人机位于目标上方时大得多。当然，这些配置是静态的，但是在现实的场景中，目标的运动是不可预测的，无人机的控制力有限，在其动力学方面的经验是随机的。</p> <p>因此，本文的目的是提出并研究一种在相当现实的条件下，最佳协调两个无人机跟踪地面运动目标的有效方法。更具体地说，配备摄像头的无人机的目标是收集随机移动地面目标的最佳联合视觉测量值，同时自身受到有限的控制力和动态的随机性的影响。考虑中的无人机是手动或弹射器发射的固定翼飞机，在恒定的高度飞行，并有一个自动驾驶仪，通过内部反馈回路将滚转角、空速和高度调节到所需的设定值。此外，假设这些欠驱动飞机以恒定的空速飞行，因为此类小型飞机的允许空速范围可能非常有限，如[2]和[3]的§5.1所述。此外，空速的频繁变化可能不利于燃油经济性，或者根本无法实现。因此，横摇角设定值是影响水平设备动态的唯一控制输入。目标被建模为一个随机转动和加速的非完整飞行器。</p> <p>由于确定最优控制策略（反馈律）是随机最优控制领域的一个具有挑战性的问题，我们现在注意到过去十年中针对目标跟踪领域中类似问题提出的众多解决方案。</p> <p><em>1.1 相关研究</em><br> <em>1.2 本文贡献</em><br> <em>1.3 论文大纲</em></p> <p><strong>第2节 问题表述</strong>，考虑两个无人机一组的任务是使用万向视频传感器自动跟踪一个不可预测的移动目标车辆。无人机在恒定的高度和固定的名义空速下飞行，但其动力学特性具有随机性。目标是一种在地面上运动的非完整地面车辆，其转弯和加速具有随机性。主要目标是优化无人机的协调性，以收集目标的最佳联合视觉测量。由于所有车辆在其动力学过程中都经历随机性，因此动态优化本质上是一个随机最优控制问题，其关键部分是对状态的随机演化和与每个状态相关的费用的描述。因此，我们首先描述了无人机和目标的随机运动学模型，然后讨论了视频测量模型和相关的地理位置误差协方差，这将构成成本。</p> <p><em>2.1 随机动力学综述</em><br> <em>2.2 无人机动力学</em><br> <em>2.3 目标动力学</em><br> <em>2.4 以目标为中心的状态空间</em><br> <em>2.5 定位误差协方差</em><br> <em>2.6 随机最优控制目标</em></p> <p><strong>第3节 动态规划</strong>，动态规划利用了动态的马尔科夫特性，并依赖于值函数的概念。</p> <p><em>3.1 基本蒙特卡罗解</em><br> <em>3.2 回归蒙特卡罗</em>，包括策略生成，形成随机网格，回归，收敛性和样本量</p> <p><strong>第4节 目标跟踪的回归蒙特卡罗方法</strong>，我们现在专门介绍第3节中描述的算法来解决基于视觉的目标跟踪问题。特别是，我们首先提出了对算法1的适应性，该算法解决了第2.4节中描述的状态空间的一些组件是离散的这一事实。接下来，我们描述了随机网格<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>Z</mi></mrow><annotation encoding="application/x-tex">Z</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.68333em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.07153em;">Z</span></span></span></span>，最后，我们讨论了对成本函数的一个修正，使其径向无界，从而确保无人机相对于目标的距离保持有界。</p> <p><em>4.1 修正算法</em><br> <em>4.2 随机网格</em><br> <em>4.3 势垒函数</em></p> <p><strong>第5节 结果</strong>，我们现在研究了最优协调策略的性质以及改进的RMC方法在随机环境下两个无人机的最优协调中的有效性。为了证明所提出的控制方法的优点，我们将我们的（近似）最优控制器的性能与有效的基线策略以及先前提出的协调防区外跟踪方法进行了比较。<br>
此外，我们试图了解最佳控制策略，以了解两个四阶无人机协同追踪随机地面目标时的主要行为。</p> <p><em>5.1 问题设置和解决方案参数</em><br> <em>5.2 RMC性能</em><br> <em>5.3 最优解的性质</em></p> <p><strong>结论</strong>：本文提出并研究了一种有效的解决方案，解决了两个固定翼无人机的最佳联合视觉测量问题。对基于视觉测量的融合定位误差协方差（GEC）采用解析表达式，并对所有车辆采用随机四阶模型来捕捉真实的系统动力学。虽然从实际的角度来看，这种程度的真实性是可取的，但它也提出了一个9维随机最优控制问题，对于这个问题，基于网格的解决方案是不切实际的。因此，我们提出了一种基于模拟的策略迭代技术，称为回归蒙特卡罗，并将其应用到策略生成算法中，以消除初始策略映射的需要和影响。为了促进快速、可靠的回归，我们使用了一个分区稳健回归方案，该方案利用1-正则二次拟合；因此，该技术在捕捉Q值中的非线性的同时，实现了空间自适应性和对噪声处理的鲁棒性。</p> <p>我们对最优控制策略的性能和性质进行了深入的研究。与非协调策略相比，最优协调策略的平均成本较低，且成本方差显著降低。策略的可预测性不仅大大提高，而且性能也得到了改善。与不同速度下定常速目标的理想距离跟踪费用相比，最优策略稳态费用的集合平均数及其时间平均费用的平均值均显著降低。这可以解释为，防区外跟踪没有利用决定融合GEC的三个因素中最主要的两个，即每个无人机距目标的平面距离。此外，虽然某些应用可能需要最小的防区外距离，但视觉传感器的跟踪性能下降很大，可能需要使用更大的无人机，这种无人机可以携带更重的主动传感器，例如雷达。</p> <p>虽然最优策略在一定程度上促进了角度协调，但与目标距离的协调表现出更强、更明显的行为。相关的最佳轨迹由正弦轨迹和轨道轨迹组成，偶尔会经过目标或靠近目标。这些行为既不同于旨在实现以目标为中心的协调轨道轨迹的防区外跟踪方法，也不同于[19]和[20]的启发式方法，后者的目标是实现过目标的异相正弦曲线。此外，在目标运动随机的情况下实现了距离协调，从而提供了显著的优势。然而，如果设计一个启发式控制器用于多无人机目标跟踪应用，其中不需要最小的防区外距离，并且其成本类似于融合的GEC，则应该关注距离协调而不是视角协调。</p> <p>最后，我们提到，在实践中，目标的运动可能在很长的时间间隔内是确定的，例如，恒定速度，或者它可能有一个固定的，确定的控制策略。只要目标的运动符合第2.3节的动力学约束，如最大加速度和最大转弯速度，它就可以被视为随机过程的实现，尽管概率很低。<br>
此外，随机最优控制器对任何可以用第2.3节提出的随机模型解释的运动都是鲁棒的。当然，控制器不再一定是最优的，因为，例如，以恒定速率转动的恒速目标偏离了转向率分布的零均值假设。如果一个人想对一个给定的目标策略进行最优的博弈，那么他要么事先知道并根据该策略进行规划，要么在线学习目标的策略。虽然前一种选择是相当不切实际的，但后一种选择肯定是可能的，但它并不平凡，因此是强化学习的主题[32]。然而，目前的工作提供了鲁棒性，广泛的目标运动遇到的实践。</p> <p>未来工作的一个有趣的话题是使用两个以上的无人机来跟踪多个目标。解决多目标跟踪问题的著作包括[14]和[33]，它们通常依赖启发式来形成次优的，但在计算上可处理的解决方案。利用成本函数的简化和对称性的计算缩减，本方法几乎可以推广到三架无人机的跟踪问题，这将证明有助于分析增加单个代理的投资回报率。由于这里提出的回归方案的计算需求在状态空间维度上呈指数增长，因此可能需要考虑另一种形式的回归。一种很有前途的方法是在[34]中提出的自适应RMC方法，它将样本添加到随机网格中，这些区域对拟合质量的预期改善最大，直到满足某个阈值。此外，随机网格中点的数目和位置是自动选择的，而基于贝叶斯树的回归允许拟合的递归更新和结果的质量评估。对于一个不同的目标群，可以用一组33个这样的算法来跟踪一个或多个目标。</p> <p>由于实际模型已经在现场被证明是用于无人机，自然的下一步是在现场测试最佳控制策略，以验证其性能。在这项工作中，一个真实的情况是风，但是轻到中度的稳定风可以与目标速度合并，形成一个可用于反馈策略的表观目标速度。对于更重的随机风，可以将风速纳入系统动力学，尽管这会增加问题的维数。尽管如此，由于RMC仍然可以解决这个问题，而且由于风可以在小型无人机的性能中发挥重要作用，这也是未来工作的一个开放领域。最后，由于这项工作的目的是减少基于视觉的位置测量的误差，从而有助于使用滤波器更精确地重建整个目标状态，因此未来的工作涉及到测试该策略如何影响来自诸如粒子滤波器或[35]的鲁棒滤波器的滤波器的状态估计。</p> <h2 id="_2014🌕-无人机搜救覆盖算法研究"><a href="#_2014🌕-无人机搜救覆盖算法研究" class="header-anchor">#</a> [2014🌕]无人机搜救覆盖算法研究</h2> <div class="custom-block tip"><p class="custom-block-title">想法</p> <p>这篇文章介绍了不少搜索覆盖算法，论文也不是很长，所以算法部分的全文进行了细读并翻译。</p></div> <p>9月8日阅，论文名称：Coverage Algorithms for Search And Rescue with UAV Drones，会议论文《XIII AI*IA Symposium on Artificial Intelligence》，作者来自<em>意大利热那亚大学</em>，<a href="https://wws.lanzous.com/iM647gfvk8f" target="_blank" rel="noopener noreferrer">论文查看<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a>。</p> <blockquote><p><strong>摘要</strong>：为了组织有效的救援任务，迅速的干预是必不可少的，在这种程度上，无人机是一种很有前途的技术，可以在第一反应人员发挥作用之前探测一个区域并收集信息。在这篇文章中，我们研究了无人机团队（多翼）在地震后实施自主搜索和救援策略的发展。特别地，我们调查、分析和比较了文献中实时多机器人覆盖算法的一个子集的性能，以便根据所需的覆盖时间和（间接地）执行任务所需的电量对其性能进行分类。这些算法使用分布式软件框架实现，并在三维仿真环境中进行了测试。我们支持我们的分析，展示在不同场景下测试的大量实验结果。最后，我们给出了一些使用真实机器人进行覆盖的初步测试。</p></blockquote> <p><strong>第1节 引言</strong>，在人类无法到达或危险的紧急情况下，例如在地震、洪水或火灾等自然灾害中，自主机器人可以发挥关键作用。在这些情况下，计划和管理紧急情况的协议通常要求必须推迟人员操作，直到条件足够安全。然后，为了在人工干预之前收集尽可能多的信息，自动系统的可用性就变得至关重要，这将为后期参与搜救行动的第一反应人员提供支持。</p> <p>本文所描述的工作是在PRISMA项目1期间完成的，该项目侧重于开发和部署能够在紧急情况下操作的机器人和自主系统，具体涉及监控、术前管理和实时干预。具体来说，本文描述了在开发无人机（多机）团队方面所做的工作，这些无人驾驶飞机执行地震后搜索和救援的自主覆盖策略。</p> <p>飞行机器人目前正受到整个科学界和市场的极大关注，最近在该领域发表的大量科学文章以及现有的商业产品都证明了这一点。尽管户外监控应用带来了新的机遇，但飞行机器人仍有许多局限性。最大的限制可能是电量的自主性，因为大多数商用产品都有电池，其持续时间在10到20分钟之间，这不足以监测大规模区域。其他限制涉及无线通信范围、容错、计算能力等问题。在这些条件下，通过将分析限制在自主覆盖范围内，在（1）电量自主性（2）通信范围（3）计算负载方面具有最低要求的协调算法的可用性是部署用于搜索和救援应用的飞行机器人的先决条件。</p> <p>本文的主要贡献是对文献中多机器人覆盖算法中的一个子集即实时搜索算法的性能进行了调查、分析和比较。属于该类的算法不会在操作前预先规划所有机器人的路线，而是根据其队友的观察行为（即，到目前为止已经访问过的区域）来实时决定每个机器人的行为（即下一个要访问的区域）。由于对通信和计算能力的要求非常低，实时覆盖算法尤其有希望满足飞行机器人搜索和救援的要求条件（2）和条件（3）：然而，必须评估并定量比较它们产生满足能量需求的短路径的能力。</p> <p><strong>第2节 相关工作</strong>，大多数覆盖方法，无论是单机器人还是多机器人，都是基于空间分解的。例如，[1]假设单个机器人装备有传感器或工具，在给定位置，机器人可以覆盖一个正方形区域，并施加一个简单的网格近似（即，没有内部孔的网格），其中每个单元的尺寸与机器人的覆盖能力相对应。然后将网格划分为可以最优覆盖的矩形子网格，并求解旅行商问题（TSP），计算出访问所有子网格的路径。在许多机器人的情况下[2]问题可以形式化为多个旅行商问题-MTSP。这些思想在文献[3]中通过考虑不具有局部割点的非简单网格（即，其移除局部断开网格诱导的图的节点）得到了扩展。文献[4]描述了一种完全覆盖算法，该算法基于一种新的精确的细胞分解方法，称为boustrophedon细胞分解（即基于前后牛一样的运动）。在这种方法中，扩展到了文献[5]中的多机器人覆盖范围，计算单元的方式保证了机器人可以很容易地在每个单元中规划boustrophedon运动。在[6]、[7]、[8]、[9]中也提出了类似的方法。</p> <p>与以前的方法不同，这些方法主要依赖于将工作区域分解为子区域，并为每个机器人分配一个子区域（或一组子区域）进行覆盖，生成树覆盖（Spanning Tree Coverage, 简称STC）是指所有机器人周期性地覆盖整个环境，以保证所有区域都能以统一的频率访问。单机器人的STC在文献[10]、[11]中首次提出，同样是假设机器人配备了理想的清扫工具，并采用了基于工具的网格近似。该方法依赖于在网格上建立最小生成树的思想，并沿着树周围的哈密顿循环（Hamiltonian cycle）移动。作者发现网格中的每个单元都以相同的频率被重复访问。在[12]中，这些思想被扩展到多机器人生成树覆盖（Multi–Robot Spanning Tree Coverage，简称MSTC）：在计算了哈密顿循环之后，机器人被均匀地沿着路径定位，并被指示在等距离的相对位置上沿着循环行走。根据文献[13]，计算MSTC轨迹以最小化覆盖时间是一个NP-完全问题，针对这一局限性，本文提出了一种多项式时间的多机器人森林覆盖启发式技术，提供了一种改进的解决方案。在[14]中，提出了一种MSTC的在线变体，它假设机器人对工作区域没有先验知识，并且在存在噪声传感器数据的情况下被证明是完整和鲁棒的。在文献[15]中，描述了一种在受限工作环境中为多个移动机器人生成哈密顿探测路径的不同方法。</p> <p>在考虑参考场景的约束时，上述所有方法都有两个主要的局限性，即设想由飞行机器人组成的团队进行搜索和救援行动。首先，在最优性准则下为每个机器人计算一条完整的路径是非常昂贵的。第二，如果机器人在操作前被预先分配了一条路径，系统必然表现出对故障的低容忍度，并且在机器人之间的通信和计算负载方面施加了严重的限制。举个例子，考虑这样一种情况：一个机器人不再能够向队友传达进度，或者它必须意外地回家充电：在这种情况下，需要重新规划所有机器人的路线，这会带来额外的成本和操作延迟。再举一个例子，考虑一个更糟糕的情况，即机器人在没有意识到自己的故障的情况下无法继续前进：在这种情况下，无法更有效地保证完全覆盖。</p> <p>不存在上述问题的算法是存在的：它们属于所谓的实时搜索或类似蚂蚁的方法的领域，这些方法旨在为复杂的搜索问题提供通用的解决方案，但也被用于机器人的覆盖和探索。这些方法中比较简单的也许是随机游动。假设环境被建模为一个有向图3：当机器人在一个顶点时，它以均匀的概率随机选择一条离开的边，这保证了当探测时间趋于无限时，在统计意义上完全覆盖。边缘计数[16]是这种思想的一种确定性变体，机器人在给定的顶点上计算每个离开边被选中的次数，并在随后的访问中以圆形顺序选择不同的边。Node Count[17]通过将一个值与图的每个顶点相关联的思想，展示了一种改进的行为，它计算到目前为止每个顶点已经被访问的频率。当一个机器人进入一个顶点时，它将该顶点的值增加一个；然后，它移动到目前为止访问次数较少的相邻顶点。这种简单思想的变体也存在（例如[18]、[19]、[17]）：尤其是，学习实时A*[17]需要在一条边遍历之前进行前瞻，但可以保证更好的性能[20]。实时搜索或类似蚂蚁的方法已经被提出，专门为机器人应用而设计。在[21]、[22]、[23]中，描述了一种类似于节点计数的图探索策略，该策略依赖于机器人可以扔下或收集的鹅卵石来识别已经访问过的顶点。在[24]、[25]中，提出了一系列类似蚂蚁的方法，机器人可以通过物理留下信息素一样的化学气味痕迹来覆盖未绘制地图的建筑物的地板，这些气味会随着时间的推移而蒸发。在[26]中提出了巡更图，它可以明确地处理多机器人控制的频率覆盖问题，即当图的不同顶点必须以不同的频率访问时（例如，取决于某些优先级标准）。</p> <p>现有的实时搜索和类似蚂蚁的方法可以很容易地扩展到多机器人系统。这类方法的一个特点是，原则上，它们根本不需要机器人之间的通信，因为有一些“通过环境”的隐含通信机制（即从蚂蚁和白蚁或类似的stigmergic机制中获取信息素的使用灵感）。在实践中，实现一个可靠地评估蒸发化学痕迹气味强度的真实传感器在技术上非常具有挑战性，部署和收集鹅卵石的伺服机构也是如此（更不用说用飞行机器人模拟stigmergy的难度）。因此，这些过程通常是通过所有机器人共享的全局内存来模拟的，这最终需要某种机器人间的通信。尽管如此，实时搜索和类似蚂蚁的方法展示了参考场景所需的所有特征：一个不再能够前进或交流其进展的机器人不会产生灾难性的影响，因为所有的决策都是以非常低的计算成本实时做出的。</p> <p><strong>第3节 覆盖算法</strong>，在本节中，我们正式定义了覆盖问题，并描述了文献中可用的覆盖算法的子集，即：节点计数（<em>Node Count</em>，简称NC算法）、<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>L</mi><mi>R</mi><mi>T</mi><msup><mi>A</mi><mo>∗</mo></msup></mrow><annotation encoding="application/x-tex">LRTA^*</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.688696em;"></span><span class="strut bottom" style="height:0.688696em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit">L</span><span class="mord mathit" style="margin-right:0.00773em;">R</span><span class="mord mathit" style="margin-right:0.13889em;">T</span><span class="mord"><span class="mord mathit">A</span><span class="vlist"><span style="top:-0.363em;margin-right:0.05em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle uncramped"><span class="mord">∗</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>、边缘计数(<em>Edge Counting</em>)和巡更图*(<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>P</mi><mi>a</mi><mi>t</mi><mi>r</mi><mi>o</mi><mi>l</mi><mi>G</mi><mi>R</mi><mi>A</mi><mi>P</mi><msup><mi>H</mi><mo>∗</mo></msup></mrow><annotation encoding="application/x-tex">PatrolGRAPH^*</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.69444em;"></span><span class="strut bottom" style="height:0.69444em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.13889em;">P</span><span class="mord mathit">a</span><span class="mord mathit">t</span><span class="mord mathit" style="margin-right:0.02778em;">r</span><span class="mord mathit">o</span><span class="mord mathit" style="margin-right:0.01968em;">l</span><span class="mord mathit">G</span><span class="mord mathit" style="margin-right:0.00773em;">R</span><span class="mord mathit">A</span><span class="mord mathit" style="margin-right:0.13889em;">P</span><span class="mord"><span class="mord mathit" style="margin-right:0.08125em;">H</span><span class="vlist"><span style="top:-0.363em;margin-right:0.05em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle uncramped"><span class="mord">∗</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>)。上面所有的算法都可以归类为实时搜索算法：然而巡更图*要求在操作之前有一个额外的离线阶段。这种离线阶段不针对机器人路线规划，因此不会使上述讨论无效。</p> <p><em>3.1 问题陈述</em>，覆盖问题在于找到一个决策过程，允许一组机器人在一个以导航图为模型的工作空间中导航。鉴于此：</p> <ul><li><span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>G</mi><mi>N</mi></msub></mrow><annotation encoding="application/x-tex">G_N</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">G</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit" style="margin-right:0.10903em;">N</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>是一个任意阶的连通无向图，可能包含环，它代表自由空间的拓扑，称为导航图。导航图可以通过一个强连接的有向图<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mover accent="true"><mrow><mi>G</mi></mrow><mo>^</mo></mover><mi>N</mi></msub></mrow><annotation encoding="application/x-tex">\hat{G}_N</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.9467699999999999em;"></span><span class="strut bottom" style="height:1.0967699999999998em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord accent"><span class="vlist"><span style="top:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="mord textstyle cramped"><span class="mord mathit">G</span></span></span><span style="top:-0.25233em;margin-left:0.16668em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="accent-body"><span>^</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit" style="margin-right:0.10903em;">N</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>来更好地表示，该图通过将所有边加倍并指定相反的方向从<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>G</mi><mi>N</mi></msub></mrow><annotation encoding="application/x-tex">G_N</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">G</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit" style="margin-right:0.10903em;">N</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>中派生出来。</li> <li><span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>S</mi><mo>=</mo><mo>{</mo><msub><mi>s</mi><mi>i</mi></msub><mo>}</mo></mrow><annotation encoding="application/x-tex">S=\{s_i\}</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.05764em;">S</span><span class="mrel">=</span><span class="mopen">{</span><span class="mord"><span class="mord mathit">s</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mclose">}</span></span></span></span>表示图<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mover accent="true"><mrow><mi>G</mi></mrow><mo>^</mo></mover><mi>N</mi></msub></mrow><annotation encoding="application/x-tex">\hat{G}_N</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.9467699999999999em;"></span><span class="strut bottom" style="height:1.0967699999999998em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord accent"><span class="vlist"><span style="top:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="mord textstyle cramped"><span class="mord mathit">G</span></span></span><span style="top:-0.25233em;margin-left:0.16668em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="accent-body"><span>^</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit" style="margin-right:0.10903em;">N</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>中<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>N</mi></mrow><annotation encoding="application/x-tex">N</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.68333em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.10903em;">N</span></span></span></span>个顶点的有限集。每个顶点<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>s</mi><mi>i</mi></msub></mrow><annotation encoding="application/x-tex">s_i</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.58056em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">s</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>都与工作空间中的一个位置相关联。</li> <li><span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>A</mi><mi>i</mi></msub><mo>=</mo><mo>{</mo><msub><mi>a</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub><mo>}</mo><mo>≠</mo><mn>0</mn></mrow><annotation encoding="application/x-tex">A_i=\{ a_{ij} \} \ne 0</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1.036108em;vertical-align:-0.286108em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">A</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mrel">=</span><span class="mopen">{</span><span class="mord"><span class="mord mathit">a</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord mathit">i</span><span class="mord mathit" style="margin-right:0.05724em;">j</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mclose">}</span><span class="mrel">≠</span><span class="mord mathrm">0</span></span></span></span>是从顶点<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>s</mi><mi>i</mi></msub><mo>∈</mo><mi>S</mi></mrow><annotation encoding="application/x-tex">s_i \in S</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">s</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mrel">∈</span><span class="mord mathit" style="margin-right:0.05764em;">S</span></span></span></span>出发的有限的非空有向边集。每个边<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>a</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub></mrow><annotation encoding="application/x-tex">a_{ij}</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.716668em;vertical-align:-0.286108em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">a</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord mathit">i</span><span class="mord mathit" style="margin-right:0.05724em;">j</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>通过一对索引<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mo>(</mo><mi>i</mi><mo separator="true">,</mo><mi>j</mi><mo>)</mo></mrow><annotation encoding="application/x-tex">(i,j)</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mopen">(</span><span class="mord mathit">i</span><span class="mpunct">,</span><span class="mord mathit" style="margin-right:0.05724em;">j</span><span class="mclose">)</span></span></span></span>定义，它们分别标识相应的起点和终点。<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi mathvariant="normal">∣</mi><msub><mi>A</mi><mi>i</mi></msub><mi mathvariant="normal">∣</mi></mrow><annotation encoding="application/x-tex">|A_i|</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mord mathrm">∣</span><span class="mord"><span class="mord mathit">A</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mord mathrm">∣</span></span></span></span>是集合的维数，即从<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>s</mi><mi>i</mi></msub></mrow><annotation encoding="application/x-tex">s_i</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.58056em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">s</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>出发的边数。</li> <li><span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>R</mi><mo>=</mo><mo>{</mo><msub><mi>r</mi><mi>i</mi></msub><mo>}</mo></mrow><annotation encoding="application/x-tex">R=\{r_i\}</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.00773em;">R</span><span class="mrel">=</span><span class="mopen">{</span><span class="mord"><span class="mord mathit" style="margin-right:0.02778em;">r</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.02778em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mclose">}</span></span></span></span>是<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>M</mi></mrow><annotation encoding="application/x-tex">M</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.68333em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.10903em;">M</span></span></span></span>个机器人。只有在<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>a</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub><mo>∈</mo><msub><mi>A</mi><mi>i</mi></msub></mrow><annotation encoding="application/x-tex">a_{ij} \in A_i</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.969438em;vertical-align:-0.286108em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">a</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord mathit">i</span><span class="mord mathit" style="margin-right:0.05724em;">j</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mrel">∈</span><span class="mord"><span class="mord mathit">A</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>，即两个顶点相邻的情况下，才允许机器人在工作空间中<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mover accent="true"><mrow><mi>G</mi></mrow><mo>^</mo></mover><mi>N</mi></msub></mrow><annotation encoding="application/x-tex">\hat{G}_N</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.9467699999999999em;"></span><span class="strut bottom" style="height:1.0967699999999998em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord accent"><span class="vlist"><span style="top:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="mord textstyle cramped"><span class="mord mathit">G</span></span></span><span style="top:-0.25233em;margin-left:0.16668em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="accent-body"><span>^</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit" style="margin-right:0.10903em;">N</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>从<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>s</mi><mi>i</mi></msub></mrow><annotation encoding="application/x-tex">s_i</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.58056em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">s</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>移动到<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>s</mi><mi>j</mi></msub></mrow><annotation encoding="application/x-tex">s_j</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.716668em;vertical-align:-0.286108em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">s</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit" style="margin-right:0.05724em;">j</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>。</li></ul> <p>必须实现以下目标：<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>M</mi></mrow><annotation encoding="application/x-tex">M</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.68333em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.10903em;">M</span></span></span></span>个机器人必须保证覆盖范围<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mover accent="true"><mrow><mi>G</mi></mrow><mo>^</mo></mover><mi>N</mi></msub></mrow><annotation encoding="application/x-tex">\hat{G}_N</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.9467699999999999em;"></span><span class="strut bottom" style="height:1.0967699999999998em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord accent"><span class="vlist"><span style="top:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="mord textstyle cramped"><span class="mord mathit">G</span></span></span><span style="top:-0.25233em;margin-left:0.16668em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="accent-body"><span>^</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit" style="margin-right:0.10903em;">N</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>，确保访问所有顶点的次数至少为<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>D</mi></mrow><annotation encoding="application/x-tex">D</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.68333em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.02778em;">D</span></span></span></span>（通常情况下<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>D</mi><mo>=</mo><mn>1</mn></mrow><annotation encoding="application/x-tex">D=1</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.68333em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.02778em;">D</span><span class="mrel">=</span><span class="mord mathrm">1</span></span></span></span>），并且在任务完成后，所有机器人返回起始顶点（在处理飞行机器人时，回家是至关重要的，例如电池充电）。</p> <p>下面讨论的所有实时覆盖解决方案都假设<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>M</mi></mrow><annotation encoding="application/x-tex">M</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.68333em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.10903em;">M</span></span></span></span>个机器人同时执行同一算法1的不同实例。该算法要求输入起始点<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>s</mi><mrow><mi>s</mi><mi>t</mi><mi>a</mi><mi>r</mi><mi>t</mi></mrow></msub></mrow><annotation encoding="application/x-tex">s_{start}</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.58056em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">s</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord mathit">s</span><span class="mord mathit">t</span><span class="mord mathit">a</span><span class="mord mathit" style="margin-right:0.02778em;">r</span><span class="mord mathit">t</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>和每个顶点必须保证的访问次数<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>D</mi></mrow><annotation encoding="application/x-tex">D</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.68333em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.02778em;">D</span></span></span></span>。每个顶点<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>u</mi><mo>(</mo><msub><mi>s</mi><mi>i</mi></msub><mo>)</mo></mrow><annotation encoding="application/x-tex">u(s_i)</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mord mathit">u</span><span class="mopen">(</span><span class="mord"><span class="mord mathit">s</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mclose">)</span></span></span></span>接收的访问数在所有机器人中全局共享<sup class="footnote-ref"><a href="#fn2" id="fnref2">[2]</a></sup>，并且对于所有<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>i</mi><mo>=</mo><mn>1</mn><mo>⋯</mo><mi>N</mi></mrow><annotation encoding="application/x-tex">i=1 \cdots N</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.68333em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit">i</span><span class="mrel">=</span><span class="mord mathrm">1</span><span class="minner">⋯</span><span class="mord mathit" style="margin-right:0.10903em;">N</span></span></span></span>，它被初始化为0。</p> <p><img src="https://s1.ax1x.com/2020/09/08/wMhygU.png" alt="wMhygU.png"></p> <p>算法本身很直截了当：当机器人位于当前顶点<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>s</mi></mrow><annotation encoding="application/x-tex">s</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.43056em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit">s</span></span></span></span>时，它选择弧<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>a</mi></mrow><annotation encoding="application/x-tex">a</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.43056em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit">a</span></span></span></span>进行移动（第3行），它更新<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>s</mi></mrow><annotation encoding="application/x-tex">s</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.43056em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit">s</span></span></span></span>（第4行），增加<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>s</mi></mrow><annotation encoding="application/x-tex">s</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.43056em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit">s</span></span></span></span>的访问次数<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>u</mi><mo>(</mo><mi>s</mi><mo>)</mo></mrow><annotation encoding="application/x-tex">u(s)</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mord mathit">u</span><span class="mopen">(</span><span class="mord mathit">s</span><span class="mclose">)</span></span></span></span>（第5行），最后它实际移动，直到到达目的地并可能执行任务（第6行）。当所有顶点访问至少<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>D</mi></mrow><annotation encoding="application/x-tex">D</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.68333em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.02778em;">D</span></span></span></span>次后，机器人将返回<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>s</mi><mrow><mi>s</mi><mi>t</mi><mi>a</mi><mi>r</mi><mi>t</mi></mrow></msub></mrow><annotation encoding="application/x-tex">s_{start}</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.58056em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">s</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord mathit">s</span><span class="mord mathit">t</span><span class="mord mathit">a</span><span class="mord mathit" style="margin-right:0.02778em;">r</span><span class="mord mathit">t</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>。注意，操作符<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>c</mi><mi>h</mi><mi>o</mi><mi>o</mi><mi>s</mi><mi>e</mi><mo>(</mo><msub><mi>s</mi><mi>i</mi></msub><mo separator="true">,</mo><mi>A</mi><mi>l</mi><mi>g</mi><mo>)</mo></mrow><annotation encoding="application/x-tex">choose(s_i, Alg)</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mord mathit">c</span><span class="mord mathit">h</span><span class="mord mathit">o</span><span class="mord mathit">o</span><span class="mord mathit">s</span><span class="mord mathit">e</span><span class="mopen">(</span><span class="mord"><span class="mord mathit">s</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mpunct">,</span><span class="mord mathit">A</span><span class="mord mathit" style="margin-right:0.01968em;">l</span><span class="mord mathit" style="margin-right:0.03588em;">g</span><span class="mclose">)</span></span></span></span>返回从<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>s</mi><mi>i</mi></msub></mrow><annotation encoding="application/x-tex">s_i</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.58056em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">s</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>出发的一个弧<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>a</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub><mo>∈</mo><msub><mi>A</mi><mi>i</mi></msub></mrow><annotation encoding="application/x-tex">a_{ij} \in A_i</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.969438em;vertical-align:-0.286108em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">a</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord mathit">i</span><span class="mord mathit" style="margin-right:0.05724em;">j</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mrel">∈</span><span class="mord"><span class="mord mathit">A</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>，并根据考虑的特定算法<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>A</mi><mi>l</mi><mi>g</mi></mrow><annotation encoding="application/x-tex">Alg</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.69444em;"></span><span class="strut bottom" style="height:0.8888799999999999em;vertical-align:-0.19444em;"></span><span class="base textstyle uncramped"><span class="mord mathit">A</span><span class="mord mathit" style="margin-right:0.01968em;">l</span><span class="mord mathit" style="margin-right:0.03588em;">g</span></span></span></span>生成不同的覆盖策略，而<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>s</mi><mi>u</mi><mi>c</mi><mi>c</mi><mo>(</mo><msub><mi>s</mi><mi>i</mi></msub><mo separator="true">,</mo><msub><mi>a</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub><mo>)</mo></mrow><annotation encoding="application/x-tex">succ(s_i,a_{ij})</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1.036108em;vertical-align:-0.286108em;"></span><span class="base textstyle uncramped"><span class="mord mathit">s</span><span class="mord mathit">u</span><span class="mord mathit">c</span><span class="mord mathit">c</span><span class="mopen">(</span><span class="mord"><span class="mord mathit">s</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mpunct">,</span><span class="mord"><span class="mord mathit">a</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord mathit">i</span><span class="mord mathit" style="margin-right:0.05724em;">j</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mclose">)</span></span></span></span>在沿着<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>a</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub></mrow><annotation encoding="application/x-tex">a_{ij}</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.716668em;vertical-align:-0.286108em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">a</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord mathit">i</span><span class="mord mathit" style="margin-right:0.05724em;">j</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>移动时返回<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>s</mi><mi>i</mi></msub></mrow><annotation encoding="application/x-tex">s_i</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.58056em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">s</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>的后续顶点<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>s</mi><mi>j</mi></msub></mrow><annotation encoding="application/x-tex">s_j</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.716668em;vertical-align:-0.286108em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">s</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit" style="margin-right:0.05724em;">j</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>。</p> <div class="custom-block tip"><p class="custom-block-title">备注1</p> <p>在机器人实际到达<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>s</mi></mrow><annotation encoding="application/x-tex">s</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.43056em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit">s</span></span></span></span>（第6行）之前，<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>s</mi></mrow><annotation encoding="application/x-tex">s</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.43056em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit">s</span></span></span></span>接收的访问次数就已经增加了（第5行）。下面将更清楚地说明，这主要是为了避免第二个机器人可能在第一个机器人真正到达目标之前做出相同的决定（即朝<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>s</mi></mrow><annotation encoding="application/x-tex">s</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.43056em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit">s</span></span></span></span>方向），从而在同一区域产生不希望的机器人集中。这在单机器人覆盖问题时不是必需的，在理想情况下，到达新顶点和执行任务所需的时间可以忽略不计。然而，在一个真正的多机器人案例中，结果是算法1第3-5行中的三个操作必须以原子方式执行，这只能在机器人开始移动之前通过增加<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>u</mi><mo>(</mo><mi>s</mi><mo>)</mo></mrow><annotation encoding="application/x-tex">u(s)</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mord mathit">u</span><span class="mopen">(</span><span class="mord mathit">s</span><span class="mclose">)</span></span></span></span>来实现。</p></div> <p><em>3.2 节点计数(Node Count)</em>，节点计数<sup class="footnote-ref"><a href="#fn3" id="fnref3">[3]</a></sup>在算法1的第3行中采用了一种简单的启发式方法来决定应该选择哪个顶点：当机器人位于<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>s</mi><mi>i</mi></mrow><annotation encoding="application/x-tex">si</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.65952em;"></span><span class="strut bottom" style="height:0.65952em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit">s</span><span class="mord mathit">i</span></span></span></span>中时，它选择<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>u</mi><mo>(</mo><msub><mi>s</mi><mi>j</mi></msub><mo>)</mo></mrow><annotation encoding="application/x-tex">u(s_j)</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1.036108em;vertical-align:-0.286108em;"></span><span class="base textstyle uncramped"><span class="mord mathit">u</span><span class="mopen">(</span><span class="mord"><span class="mord mathit">s</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit" style="margin-right:0.05724em;">j</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mclose">)</span></span></span></span>最小的相邻顶点<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>s</mi><mi>j</mi></msub><mo>=</mo><mi>s</mi><mi>u</mi><mi>c</mi><mi>c</mi><mo>(</mo><msub><mi>s</mi><mi>i</mi></msub><mo separator="true">,</mo><msub><mi>a</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub><mo>)</mo></mrow><annotation encoding="application/x-tex">s_j=succ(s_i,a_{ij})</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1.036108em;vertical-align:-0.286108em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">s</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit" style="margin-right:0.05724em;">j</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mrel">=</span><span class="mord mathit">s</span><span class="mord mathit">u</span><span class="mord mathit">c</span><span class="mord mathit">c</span><span class="mopen">(</span><span class="mord"><span class="mord mathit">s</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mpunct">,</span><span class="mord"><span class="mord mathit">a</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord mathit">i</span><span class="mord mathit" style="margin-right:0.05724em;">j</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mclose">)</span></span></span></span>（即访问次数最少的相邻顶点）。如果两个或多个相邻顶点满足上述选择条件，则其中一个将由运算符<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>o</mi><mi>n</mi><mi>e</mi><mi>o</mi><mi>f</mi><mo>(</mo><mi mathvariant="normal">.</mi><mi mathvariant="normal">.</mi><mi mathvariant="normal">.</mi><mo>)</mo></mrow><annotation encoding="application/x-tex">oneof(...)</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mord mathit">o</span><span class="mord mathit">n</span><span class="mord mathit">e</span><span class="mord mathit">o</span><span class="mord mathit" style="margin-right:0.10764em;">f</span><span class="mopen">(</span><span class="mord mathrm">.</span><span class="mord mathrm">.</span><span class="mord mathrm">.</span><span class="mclose">)</span></span></span></span>随机选择。还要记住，在进入<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>s</mi><mi>j</mi></msub></mrow><annotation encoding="application/x-tex">s_j</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.716668em;vertical-align:-0.286108em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">s</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit" style="margin-right:0.05724em;">j</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>之前，算法1的第5行中<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>u</mi><mo>(</mo><msub><mi>s</mi><mi>j</mi></msub><mo>)</mo></mrow><annotation encoding="application/x-tex">u(s_j)</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1.036108em;vertical-align:-0.286108em;"></span><span class="base textstyle uncramped"><span class="mord mathit">u</span><span class="mopen">(</span><span class="mord"><span class="mord mathit">s</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit" style="margin-right:0.05724em;">j</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mclose">)</span></span></span></span>的值增加了1，因此使得<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>s</mi><mi>j</mi></msub></mrow><annotation encoding="application/x-tex">s_j</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.716668em;vertical-align:-0.286108em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">s</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit" style="margin-right:0.05724em;">j</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>不太容易被后面的其他机器人选择。</p> <p><img src="https://s1.ax1x.com/2020/09/08/wM4Qr4.png" alt="wM4Qr4.png"></p> <p><em>3.3 LRTA*</em>，LRTA*在<sup class="footnote-ref"><a href="#fn3" id="fnref3:1">[3:1]</a></sup>中首次被描述，可能是最流行的实时搜索方法。该算法可用于寻找从起点到目标顶点的路径，但在这里用于覆盖，如<sup class="footnote-ref"><a href="#fn4" id="fnref4">[4]</a></sup>中所述。除了全局变量<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>u</mi><mo>(</mo><msub><mi>s</mi><mi>i</mi></msub><mo>)</mo></mrow><annotation encoding="application/x-tex">u(s_i)</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mord mathit">u</span><span class="mopen">(</span><span class="mord"><span class="mord mathit">s</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mclose">)</span></span></span></span>，LRTA*还需要一个与每个顶点<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>s</mi><mi>i</mi></msub><mo>∈</mo><mi>S</mi></mrow><annotation encoding="application/x-tex">s_i \in S</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">s</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mrel">∈</span><span class="mord mathit" style="margin-right:0.05764em;">S</span></span></span></span>相关联的值<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msup><mi>u</mi><mo>∗</mo></msup><mo>(</mo><mi>s</mi><mi>i</mi><mo>)</mo></mrow><annotation encoding="application/x-tex">u^*(si)</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">u</span><span class="vlist"><span style="top:-0.363em;margin-right:0.05em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle uncramped"><span class="mord">∗</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mopen">(</span><span class="mord mathit">s</span><span class="mord mathit">i</span><span class="mclose">)</span></span></span></span>（在所有机器人中全局共享）。操作符<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>c</mi><mi>h</mi><mi>o</mi><mi>o</mi><mi>s</mi><mi>e</mi><mo>(</mo><mi mathvariant="normal">.</mi><mi mathvariant="normal">.</mi><mi mathvariant="normal">.</mi><mo>)</mo></mrow><annotation encoding="application/x-tex">choose(...)</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mord mathit">c</span><span class="mord mathit">h</span><span class="mord mathit">o</span><span class="mord mathit">o</span><span class="mord mathit">s</span><span class="mord mathit">e</span><span class="mopen">(</span><span class="mord mathrm">.</span><span class="mord mathrm">.</span><span class="mord mathrm">.</span><span class="mclose">)</span></span></span></span>实现的策略类似于节点计数：当机器人位于<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>s</mi><mi>i</mi></msub></mrow><annotation encoding="application/x-tex">s_i</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.58056em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">s</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>中时，它选择<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msup><mi>u</mi><mo>∗</mo></msup><mo>(</mo><msub><mi>s</mi><mi>j</mi></msub><mo>)</mo></mrow><annotation encoding="application/x-tex">u^*(s_j)</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1.036108em;vertical-align:-0.286108em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">u</span><span class="vlist"><span style="top:-0.363em;margin-right:0.05em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle uncramped"><span class="mord">∗</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mopen">(</span><span class="mord"><span class="mord mathit">s</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit" style="margin-right:0.05724em;">j</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mclose">)</span></span></span></span>最小的相邻顶点<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>s</mi><mi>j</mi></msub></mrow><annotation encoding="application/x-tex">s_j</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.716668em;vertical-align:-0.286108em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">s</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit" style="margin-right:0.05724em;">j</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>。</p> <p>但是，<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msup><mi>u</mi><mo>∗</mo></msup><mo>(</mo><msub><mi>s</mi><mi>i</mi></msub><mo>)</mo></mrow><annotation encoding="application/x-tex">u^*(s_i)</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">u</span><span class="vlist"><span style="top:-0.363em;margin-right:0.05em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle uncramped"><span class="mord">∗</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mopen">(</span><span class="mord"><span class="mord mathit">s</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mclose">)</span></span></span></span>与<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>s</mi><mi>i</mi></msub></mrow><annotation encoding="application/x-tex">s_i</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.58056em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">s</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>的访问次数不对应，更新它的规则也不同，参见算法3的第2行：<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msup><mi>u</mi><mo>∗</mo></msup><mo>(</mo><msub><mi>s</mi><mi>i</mi></msub><mo>)</mo></mrow><annotation encoding="application/x-tex">u^*(s_i)</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">u</span><span class="vlist"><span style="top:-0.363em;margin-right:0.05em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle uncramped"><span class="mord">∗</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mopen">(</span><span class="mord"><span class="mord mathit">s</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mclose">)</span></span></span></span>现在不是简单地递增，而是根据相邻顶点的值更新（在离开<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>s</mi><mi>i</mi></msub></mrow><annotation encoding="application/x-tex">s_i</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.58056em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">s</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>之前）。简而言之，这个更新规则背后的基本原理是实现以下行为：当选择下一个要访问的顶点时，算法不应该选择访问量较小的顶点，而是应该选择“最有希望”的相邻顶点，以最终到达未访问的顶点。该算法已被证明比节点计数具有更好的覆盖性能，详细讨论见[20]。</p> <p><img src="https://s1.ax1x.com/2020/09/08/wM4bWV.png" alt="wM4bWV.png"></p> <div class="custom-block tip"><p class="custom-block-title">备注2</p> <p>与节点计数法不同，在机器人向<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>s</mi><mi>i</mi></msub></mrow><annotation encoding="application/x-tex">s_i</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.58056em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">s</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>移动之前，没有一种直接的方法来增加<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msup><mi>u</mi><mo>∗</mo></msup><mo>(</mo><msub><mi>s</mi><mi>i</mi></msub><mo>)</mo></mrow><annotation encoding="application/x-tex">u^*(s_i)</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">u</span><span class="vlist"><span style="top:-0.363em;margin-right:0.05em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle uncramped"><span class="mord">∗</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mopen">(</span><span class="mord"><span class="mord mathit">s</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mclose">)</span></span></span></span>：事实上，算法3中第2行中的更新规则要求知道在<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>s</mi><mi>i</mi></msub></mrow><annotation encoding="application/x-tex">s_i</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.58056em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">s</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>之后将选择的顶点，在到达<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>s</mi><mi>i</mi></msub></mrow><annotation encoding="application/x-tex">s_i</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.58056em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">s</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>之前还没有做出决定。因此，与<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>u</mi><mo>(</mo><msub><mi>s</mi><mi>i</mi></msub><mo>)</mo></mrow><annotation encoding="application/x-tex">u(s_i)</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mord mathit">u</span><span class="mopen">(</span><span class="mord"><span class="mord mathit">s</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mclose">)</span></span></span></span>不同，<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msup><mi>u</mi><mo>∗</mo></msup><mo>(</mo><msub><mi>s</mi><mi>i</mi></msub><mo>)</mo></mrow><annotation encoding="application/x-tex">u^*(s_i)</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">u</span><span class="vlist"><span style="top:-0.363em;margin-right:0.05em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle uncramped"><span class="mord">∗</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mopen">(</span><span class="mord"><span class="mord mathit">s</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mclose">)</span></span></span></span>的值在机器人离开<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>s</mi><mi>i</mi></msub></mrow><annotation encoding="application/x-tex">s_i</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.58056em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">s</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>之前更新。在单机器人覆盖范围内，这没有影响，但在多机器人的情况下，由于机器人的物理位移发生在两个操作之间，因此选择新顶点<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>s</mi><mi>i</mi></msub></mrow><annotation encoding="application/x-tex">s_i</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.58056em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">s</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>和更新<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msup><mi>u</mi><mo>∗</mo></msup><mo>(</mo><msub><mi>s</mi><mi>i</mi></msub><mo>)</mo></mrow><annotation encoding="application/x-tex">u^*(s_i)</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">u</span><span class="vlist"><span style="top:-0.363em;margin-right:0.05em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle uncramped"><span class="mord">∗</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mopen">(</span><span class="mord"><span class="mord mathit">s</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mclose">)</span></span></span></span>不再是原子执行的。这导致了一个与直觉相反的结果：LRTA*被证明在单个机器人覆盖范围内比节点计数更有效，在多机器人覆盖中可能变得非常低效（在最坏的情况下，位于顶点<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>s</mi><mi>i</mi></msub></mrow><annotation encoding="application/x-tex">s_i</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.58056em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">s</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>中的所有机器人可以在每次迭代中选择相同的后续顶点）。</p></div> <p><em>3.4 边缘计数</em>，边缘计数基于不同的原理：它以圆形顺序选择与当前顶点<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>s</mi><mi>i</mi></msub></mrow><annotation encoding="application/x-tex">s_i</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.58056em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">s</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>不同的边，以保证每次<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi mathvariant="normal">∣</mi><msub><mi>A</mi><mi>i</mi></msub><mi mathvariant="normal">∣</mi></mrow><annotation encoding="application/x-tex">|A_i|</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mord mathrm">∣</span><span class="mord"><span class="mord mathit">A</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mord mathrm">∣</span></span></span></span>访问时，所有边都以相同的相对概率<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mn>1</mn><mi mathvariant="normal">/</mi><mi mathvariant="normal">∣</mi><msub><mi>A</mi><mi>i</mi></msub><mi mathvariant="normal">∣</mi></mrow><annotation encoding="application/x-tex">1/|A_i|</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mord mathrm">1</span><span class="mord mathrm">/</span><span class="mord mathrm">∣</span><span class="mord"><span class="mord mathit">A</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mord mathrm">∣</span></span></span></span>选择。算法4的第1行的<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>g</mi><mi>e</mi><mi>t</mi><mo>(</mo><mi mathvariant="normal">.</mi><mi mathvariant="normal">.</mi><mi mathvariant="normal">.</mi><mo>)</mo></mrow><annotation encoding="application/x-tex">get(...)</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.03588em;">g</span><span class="mord mathit">e</span><span class="mord mathit">t</span><span class="mopen">(</span><span class="mord mathrm">.</span><span class="mord mathrm">.</span><span class="mord mathrm">.</span><span class="mclose">)</span></span></span></span>根据计数器<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>s</mi><mi>w</mi><mi>i</mi><mi>t</mi><mi>c</mi><mi>h</mi><mo>(</mo><msub><mi>s</mi><mi>i</mi></msub><mo>)</mo></mrow><annotation encoding="application/x-tex">switch(s_i)</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mord mathit">s</span><span class="mord mathit" style="margin-right:0.02691em;">w</span><span class="mord mathit">i</span><span class="mord mathit">t</span><span class="mord mathit">c</span><span class="mord mathit">h</span><span class="mopen">(</span><span class="mord"><span class="mord mathit">s</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mclose">)</span></span></span></span>的当前值（在所有机器人中全局共享），在集合<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>A</mi><mi>i</mi></msub></mrow><annotation encoding="application/x-tex">A_i</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">A</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>中选择一条边<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>a</mi></mrow><annotation encoding="application/x-tex">a</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.43056em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit">a</span></span></span></span>，第2行更新<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>s</mi><mi>w</mi><mi>i</mi><mi>t</mi><mi>c</mi><mi>h</mi><mo>(</mo><msub><mi>s</mi><mi>i</mi></msub><mo>)</mo></mrow><annotation encoding="application/x-tex">switch(s_i)</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mord mathit">s</span><span class="mord mathit" style="margin-right:0.02691em;">w</span><span class="mord mathit">i</span><span class="mord mathit">t</span><span class="mord mathit">c</span><span class="mord mathit">h</span><span class="mopen">(</span><span class="mord"><span class="mord mathit">s</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mclose">)</span></span></span></span>以指向下一条边。</p> <p><img src="https://s1.ax1x.com/2020/09/08/wQVRL8.png" alt="wQVRL8.png"></p> <div class="custom-block tip"><p class="custom-block-title">备注3</p> <p>在机器人离开<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>s</mi><mi>i</mi></msub></mrow><annotation encoding="application/x-tex">s_i</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.58056em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">s</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>之前，计数器<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>s</mi><mi>w</mi><mi>i</mi><mi>t</mi><mi>c</mi><mi>h</mi><mo>(</mo><msub><mi>s</mi><mi>i</mi></msub><mo>)</mo></mrow><annotation encoding="application/x-tex">switch(s_i)</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mord mathit">s</span><span class="mord mathit" style="margin-right:0.02691em;">w</span><span class="mord mathit">i</span><span class="mord mathit">t</span><span class="mord mathit">c</span><span class="mord mathit">h</span><span class="mopen">(</span><span class="mord"><span class="mord mathit">s</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mclose">)</span></span></span></span>已更新。然而，读者可以很容易地注意到，与LRTA*的相似性是显而易见的，并且在多机器人情况下，边缘计数不会受到任何负面影响：一旦机器人选择了下一个要前往的顶点，它就会更新计数器，然后将下一个从<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>s</mi><mi>i</mi></msub></mrow><annotation encoding="application/x-tex">s_i</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.58056em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">s</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>出发的机器人路由到另一个不同的顶点。</p></div> <p><em>3.5 PatrolGRAPH*(巡更图)</em>，PatrolGRAPH*与边缘计数有一些相似之处：但是，它的不同之处在于，从<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>s</mi><mi>i</mi></msub></mrow><annotation encoding="application/x-tex">s_i</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.58056em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">s</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>出发的后续机器人选择边<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>a</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub><mo>∈</mo><msub><mi>A</mi><mi>i</mi></msub></mrow><annotation encoding="application/x-tex">a_{ij} \in A_i</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.969438em;vertical-align:-0.286108em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">a</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord mathit">i</span><span class="mord mathit" style="margin-right:0.05724em;">j</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mrel">∈</span><span class="mord"><span class="mord mathit">A</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>的方式使得选择的相对频率不是均匀的（边缘计数是均匀分布，概率均为<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mn>1</mn><mi mathvariant="normal">/</mi><mi mathvariant="normal">∣</mi><msub><mi>A</mi><mi>i</mi></msub><mi mathvariant="normal">∣</mi></mrow><annotation encoding="application/x-tex">1/|A_i|</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mord mathrm">1</span><span class="mord mathrm">/</span><span class="mord mathrm">∣</span><span class="mord"><span class="mord mathit">A</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mord mathrm">∣</span></span></span></span>），而是遵循给定的分布<sup class="footnote-ref"><a href="#fn5" id="fnref5">[5]</a></sup>。</p> <p>为此，有必要将：<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>k</mi><mo>(</mo><msub><mi>a</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub><mo>)</mo></mrow><annotation encoding="application/x-tex">k(a_{ij})</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1.036108em;vertical-align:-0.286108em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.03148em;">k</span><span class="mopen">(</span><span class="mord"><span class="mord mathit">a</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord mathit">i</span><span class="mord mathit" style="margin-right:0.05724em;">j</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mclose">)</span></span></span></span>定义为与每个弧<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>a</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub></mrow><annotation encoding="application/x-tex">a_{ij}</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.716668em;vertical-align:-0.286108em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">a</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord mathit">i</span><span class="mord mathit" style="margin-right:0.05724em;">j</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>相关联的整数变量，该变量计算在离开<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>s</mi><mi>i</mi></msub></mrow><annotation encoding="application/x-tex">s_i</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.58056em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">s</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>（在所有机器人中全局共享）后选择进入<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>s</mi><mi>j</mi></msub></mrow><annotation encoding="application/x-tex">s_j</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.716668em;vertical-align:-0.286108em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">s</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit" style="margin-right:0.05724em;">j</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>的机器人的实际数量；<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>p</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub><mo separator="true">,</mo><mi>j</mi><mo>=</mo><mn>1</mn><mi mathvariant="normal">.</mi><mi mathvariant="normal">.</mi><mi mathvariant="normal">.</mi><mi>N</mi></mrow><annotation encoding="application/x-tex">p_{ij}, j=1...N</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.969438em;vertical-align:-0.286108em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">p</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord mathit">i</span><span class="mord mathit" style="margin-right:0.05724em;">j</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mpunct">,</span><span class="mord mathit" style="margin-right:0.05724em;">j</span><span class="mrel">=</span><span class="mord mathrm">1</span><span class="mord mathrm">.</span><span class="mord mathrm">.</span><span class="mord mathrm">.</span><span class="mord mathit" style="margin-right:0.10903em;">N</span></span></span></span>作为每个边的附加属性，描述访问<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>s</mi><mi>i</mi></msub></mrow><annotation encoding="application/x-tex">s_i</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.58056em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">s</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>后必须朝向<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>s</mi><mi>j</mi></msub></mrow><annotation encoding="application/x-tex">s_j</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.716668em;vertical-align:-0.286108em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">s</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit" style="margin-right:0.05724em;">j</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>的<em>机器人的期望比率</em>（如果<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>s</mi><mi>j</mi></msub></mrow><annotation encoding="application/x-tex">s_j</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.716668em;vertical-align:-0.286108em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">s</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit" style="margin-right:0.05724em;">j</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>与<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>s</mi><mi>i</mi></msub></mrow><annotation encoding="application/x-tex">s_i</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.58056em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">s</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>不相邻，我们假设<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>p</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub><mo>=</mo><mn>0</mn></mrow><annotation encoding="application/x-tex">p_{ij}=0</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.64444em;"></span><span class="strut bottom" style="height:0.9305479999999999em;vertical-align:-0.286108em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">p</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord mathit">i</span><span class="mord mathit" style="margin-right:0.05724em;">j</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mrel">=</span><span class="mord mathrm">0</span></span></span></span>，即如果<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>a</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub><mo>∉</mo><msub><mi>A</mi><mi>i</mi></msub></mrow><annotation encoding="application/x-tex">a_{ij} \notin A_i</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.969438em;vertical-align:-0.286108em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">a</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord mathit">i</span><span class="mord mathit" style="margin-right:0.05724em;">j</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mrel">∉</span><span class="mord"><span class="mord mathit">A</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>)。</p> <p><img src="https://s1.ax1x.com/2020/09/08/wQZiy6.png" alt="wQZiy6.png"></p> <p>第1行中的运算符<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi mathvariant="normal">Δ</mi><mi>p</mi><mo>(</mo><msub><mi>s</mi><mi>i</mi></msub><mo separator="true">,</mo><msub><mi>a</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub><mo>)</mo></mrow><annotation encoding="application/x-tex">\Delta p(s_i,a_{ij})</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1.036108em;vertical-align:-0.286108em;"></span><span class="base textstyle uncramped"><span class="mord mathrm">Δ</span><span class="mord mathit">p</span><span class="mopen">(</span><span class="mord"><span class="mord mathit">s</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mpunct">,</span><span class="mord"><span class="mord mathit">a</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord mathit">i</span><span class="mord mathit" style="margin-right:0.05724em;">j</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mclose">)</span></span></span></span>计算<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>k</mi><mo>(</mo><msub><mi>a</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub><mo>)</mo><mi mathvariant="normal">/</mi><mi>u</mi><mo>(</mo><msub><mi>s</mi><mi>i</mi></msub><mo>)</mo></mrow><annotation encoding="application/x-tex">k(a_{ij})/u(s_i)</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1.036108em;vertical-align:-0.286108em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.03148em;">k</span><span class="mopen">(</span><span class="mord"><span class="mord mathit">a</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord mathit">i</span><span class="mord mathit" style="margin-right:0.05724em;">j</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mclose">)</span><span class="mord mathrm">/</span><span class="mord mathit">u</span><span class="mopen">(</span><span class="mord"><span class="mord mathit">s</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mclose">)</span></span></span></span>（即离开<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>s</mi><mi>i</mi></msub></mrow><annotation encoding="application/x-tex">s_i</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.58056em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">s</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>后选择迁移到<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>s</mi><mi>j</mi></msub></mrow><annotation encoding="application/x-tex">s_j</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.716668em;vertical-align:-0.286108em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">s</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit" style="margin-right:0.05724em;">j</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>的机器人的实际比率）和期望比率<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>p</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub></mrow><annotation encoding="application/x-tex">p_{ij}</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.716668em;vertical-align:-0.286108em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">p</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord mathit">i</span><span class="mord mathit" style="margin-right:0.05724em;">j</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>之间的差。然后，第1行选择与所需比率相比选择次数最少的边<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>a</mi></mrow><annotation encoding="application/x-tex">a</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.43056em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit">a</span></span></span></span>；第2行将<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>k</mi><mo>(</mo><msub><mi>a</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub><mo>)</mo></mrow><annotation encoding="application/x-tex">k(a_{ij})</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1.036108em;vertical-align:-0.286108em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.03148em;">k</span><span class="mopen">(</span><span class="mord"><span class="mord mathit">a</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord mathit">i</span><span class="mord mathit" style="margin-right:0.05724em;">j</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mclose">)</span></span></span></span>增加1。算法5保证，对于每个边<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>a</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub></mrow><annotation encoding="application/x-tex">a_{ij}</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.716668em;vertical-align:-0.286108em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">a</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord mathit">i</span><span class="mord mathit" style="margin-right:0.05724em;">j</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>，相对频率<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>k</mi><mo>(</mo><msub><mi>a</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub><mo>)</mo><mi mathvariant="normal">/</mi><mi>u</mi><mo>(</mo><msub><mi>s</mi><mi>i</mi></msub><mo>)</mo></mrow><annotation encoding="application/x-tex">k(a_{ij})/u(s_i)</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1.036108em;vertical-align:-0.286108em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.03148em;">k</span><span class="mopen">(</span><span class="mord"><span class="mord mathit">a</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord mathit">i</span><span class="mord mathit" style="margin-right:0.05724em;">j</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mclose">)</span><span class="mord mathrm">/</span><span class="mord mathit">u</span><span class="mopen">(</span><span class="mord"><span class="mord mathit">s</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mclose">)</span></span></span></span>趋向于稳态下所需的比率<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>p</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub></mrow><annotation encoding="application/x-tex">p_{ij}</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.716668em;vertical-align:-0.286108em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">p</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord mathit">i</span><span class="mord mathit" style="margin-right:0.05724em;">j</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>[27]。</p> <p>这个算法很有趣，因为通过分析所有的<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>p</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub></mrow><annotation encoding="application/x-tex">p_{ij}</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.716668em;vertical-align:-0.286108em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">p</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord mathit">i</span><span class="mord mathit" style="margin-right:0.05724em;">j</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>值（定义了所谓的“转移概率矩阵”），我们可以预测系统的宏观行为。设<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>λ</mi><mo>=</mo><mo>{</mo><msub><mi>λ</mi><mi>i</mi></msub><mo>}</mo></mrow><annotation encoding="application/x-tex">\lambda = \{ \lambda_i \}</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mord mathit">λ</span><span class="mrel">=</span><span class="mopen">{</span><span class="mord"><span class="mord mathit">λ</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mclose">}</span></span></span></span>，而<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>λ</mi><mi>i</mi></msub><mo>=</mo><mi>u</mi><mo>(</mo><msub><mi>s</mi><mi>i</mi></msub><mo>)</mo><mi mathvariant="normal">/</mi><msubsup><mo>∑</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>N</mi></msubsup><mrow><mi>u</mi><mo>(</mo><msub><mi>s</mi><mi>i</mi></msub><mo>)</mo></mrow><mo separator="true">,</mo><mi>i</mi><mo>=</mo><mn>1</mn><mo separator="true">,</mo><mi mathvariant="normal">.</mi><mi mathvariant="normal">.</mi><mi mathvariant="normal">.</mi><mo separator="true">,</mo><mi>N</mi></mrow><annotation encoding="application/x-tex">\lambda_i=u(s_i)/\sum_{i=1}^N {u(s_i)}, i=1,...,N</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.8423309999999999em;"></span><span class="strut bottom" style="height:1.142341em;vertical-align:-0.30001em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">λ</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mrel">=</span><span class="mord mathit">u</span><span class="mopen">(</span><span class="mord"><span class="mord mathit">s</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mclose">)</span><span class="mord mathrm">/</span><span class="mop"><span class="op-symbol small-op mop" style="top:-0.0000050000000000050004em;">∑</span><span class="vlist"><span style="top:0.30001em;margin-left:0em;margin-right:0.05em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord mathit">i</span><span class="mrel">=</span><span class="mord mathrm">1</span></span></span></span><span style="top:-0.364em;margin-right:0.05em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle uncramped"><span class="mord mathit" style="margin-right:0.10903em;">N</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mord textstyle uncramped"><span class="mord mathit">u</span><span class="mopen">(</span><span class="mord"><span class="mord mathit">s</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mclose">)</span></span><span class="mpunct">,</span><span class="mord mathit">i</span><span class="mrel">=</span><span class="mord mathrm">1</span><span class="mpunct">,</span><span class="mord mathrm">.</span><span class="mord mathrm">.</span><span class="mord mathrm">.</span><span class="mpunct">,</span><span class="mord mathit" style="margin-right:0.10903em;">N</span></span></span></span>是顶点上访问的分布，即每个顶点随时间推移接收的访问数除以总访问数。设<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msup><mi>λ</mi><mo>∗</mo></msup><mo>=</mo><mo>{</mo><msubsup><mi>λ</mi><mi>i</mi><mo>∗</mo></msubsup><mo>}</mo></mrow><annotation encoding="application/x-tex">\lambda^*=\{\lambda_i^*\}</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">λ</span><span class="vlist"><span style="top:-0.363em;margin-right:0.05em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle uncramped"><span class="mord">∗</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mrel">=</span><span class="mopen">{</span><span class="mord"><span class="mord mathit">λ</span><span class="vlist"><span style="top:0.247em;margin-left:0em;margin-right:0.05em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span style="top:-0.363em;margin-right:0.05em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle uncramped"><span class="mord">∗</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mclose">}</span></span></span></span>为期望的访问分布。可以证明，通过适当地选择转移概率矩阵的元素，可以获得在最小二乘意义下近似期望分布的访问分布<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>λ</mi></mrow><annotation encoding="application/x-tex">\lambda</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.69444em;"></span><span class="strut bottom" style="height:0.69444em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit">λ</span></span></span></span>。例如，假设需要平均覆盖：可以计算<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>p</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub><mo separator="true">,</mo><mi>i</mi><mo separator="true">,</mo><mi>j</mi><mo>=</mo><mn>1</mn><mi mathvariant="normal">.</mi><mi mathvariant="normal">.</mi><mi mathvariant="normal">.</mi><mi>N</mi></mrow><annotation encoding="application/x-tex">p_{ij},i,j=1...N</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.969438em;vertical-align:-0.286108em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">p</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord mathit">i</span><span class="mord mathit" style="margin-right:0.05724em;">j</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mpunct">,</span><span class="mord mathit">i</span><span class="mpunct">,</span><span class="mord mathit" style="margin-right:0.05724em;">j</span><span class="mrel">=</span><span class="mord mathrm">1</span><span class="mord mathrm">.</span><span class="mord mathrm">.</span><span class="mord mathrm">.</span><span class="mord mathit" style="margin-right:0.10903em;">N</span></span></span></span>的适当值，这样<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>λ</mi><mi>i</mi></msub><mo>=</mo><msubsup><mi>λ</mi><mi>i</mi><mo>∗</mo></msubsup><mo>=</mo><mn>1</mn><mi mathvariant="normal">/</mi><mi>N</mi><mo separator="true">,</mo><mi>i</mi><mo>=</mo><mn>1</mn><mi mathvariant="normal">.</mi><mi mathvariant="normal">.</mi><mi mathvariant="normal">.</mi><mi>N</mi></mrow><annotation encoding="application/x-tex">\lambda_i=\lambda^*_i=1/N,i=1...N</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">λ</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mrel">=</span><span class="mord"><span class="mord mathit">λ</span><span class="vlist"><span style="top:0.247em;margin-left:0em;margin-right:0.05em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span style="top:-0.363em;margin-right:0.05em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle uncramped"><span class="mord">∗</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mrel">=</span><span class="mord mathrm">1</span><span class="mord mathrm">/</span><span class="mord mathit" style="margin-right:0.10903em;">N</span><span class="mpunct">,</span><span class="mord mathit">i</span><span class="mrel">=</span><span class="mord mathrm">1</span><span class="mord mathrm">.</span><span class="mord mathrm">.</span><span class="mord mathrm">.</span><span class="mord mathit" style="margin-right:0.10903em;">N</span></span></span></span>。</p> <p>转移概率矩阵的计算在操作前的优化阶段离线进行。如果我们选择不执行优化阶段，只需将所有离开边的转移概率设置为相同（即，<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>p</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub><mo>=</mo><mn>1</mn><mi mathvariant="normal">/</mi><mi mathvariant="normal">∣</mi><msub><mi>A</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub><mi mathvariant="normal">∣</mi></mrow><annotation encoding="application/x-tex">p_{ij}=1/|A_{ij}|</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1.036108em;vertical-align:-0.286108em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">p</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord mathit">i</span><span class="mord mathit" style="margin-right:0.05724em;">j</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mrel">=</span><span class="mord mathrm">1</span><span class="mord mathrm">/</span><span class="mord mathrm">∣</span><span class="mord"><span class="mord mathit">A</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord mathit">i</span><span class="mord mathit" style="margin-right:0.05724em;">j</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mord mathrm">∣</span></span></span></span>)，则以下属性成立：访问率<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>λ</mi><mi>i</mi></msub></mrow><annotation encoding="application/x-tex">\lambda_i</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.69444em;"></span><span class="strut bottom" style="height:0.84444em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">λ</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>不是均匀分布在顶点上，而是与离开边<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>A</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub></mrow><annotation encoding="application/x-tex">A_{ij}</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.969438em;vertical-align:-0.286108em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">A</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord mathit">i</span><span class="mord mathit" style="margin-right:0.05724em;">j</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>的数量成比例[27]。请注意，这正是边缘计数所发生的情况，它以相同的相对频率以圆形顺序选择所有离开的边。</p> <div class="custom-block tip"><p class="custom-block-title">备注4</p> <p>在机器人离开<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>s</mi><mi>i</mi></msub></mrow><annotation encoding="application/x-tex">s_i</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.58056em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">s</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>之前更新<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>k</mi><mo>(</mo><msub><mi>a</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub><mo>)</mo></mrow><annotation encoding="application/x-tex">k(a_{ij})</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1.036108em;vertical-align:-0.286108em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.03148em;">k</span><span class="mopen">(</span><span class="mord"><span class="mord mathit">a</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord mathit">i</span><span class="mord mathit" style="margin-right:0.05724em;">j</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mclose">)</span></span></span></span>值。然而，与边缘计数类似，读者可以很容易地注意到，在多机器人情况下，巡更图算法不会受到任何负面影响：离开<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>s</mi><mi>i</mi></msub></mrow><annotation encoding="application/x-tex">s_i</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.58056em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">s</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>的后续机器人将使用更新后的<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>k</mi><mo>(</mo><msub><mi>a</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub><mo>)</mo></mrow><annotation encoding="application/x-tex">k(a_{ij})</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1.036108em;vertical-align:-0.286108em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.03148em;">k</span><span class="mopen">(</span><span class="mord"><span class="mord mathit">a</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord mathit">i</span><span class="mord mathit" style="margin-right:0.05724em;">j</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mclose">)</span></span></span></span>值。</p></div> <p><strong>第4节 模拟实验结果</strong>，前几段描述的算法已经过仿真测试，以比较它们的性能。所有测试均采用机器人模拟器V-REP[28]，与ROS框架[29]连接。由于算法的最终目标是在尽可能短的时间内完成完全覆盖，从而间接地最小化能耗，因此选择了两个主要的性能指标。</p> <p>我们将机器人的总行程定义为：i：那么性能标准是：</p> <ul><li><span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>max</mi><msub><mi>l</mi><mi>i</mi></msub></mrow><annotation encoding="application/x-tex">\max l_i</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.69444em;"></span><span class="strut bottom" style="height:0.84444em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mop">max</span><span class="mord"><span class="mord mathit" style="margin-right:0.01968em;">l</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.01968em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>，即所有机器人中最长路径的长度。这个值越小，覆盖完成的速度就越快，每个机器人的电池电量就越有可能足以完成任务；</li> <li><span class="katex"><span class="katex-mathml"><math><semantics><mrow><mo>∑</mo><mrow><msub><mi>l</mi><mi>i</mi></msub></mrow></mrow><annotation encoding="application/x-tex">\sum{l_i}</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1.00001em;vertical-align:-0.25001em;"></span><span class="base textstyle uncramped"><span class="op-symbol small-op mop" style="top:-0.0000050000000000050004em;">∑</span><span class="mord textstyle uncramped"><span class="mord"><span class="mord mathit" style="margin-right:0.01968em;">l</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.01968em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span></span>，即所有机器人行走的总距离。这个值越小，整体功耗越低。</li></ul> <p>在下面的分析中，还显示了在所有路径长度上计算的标准差<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>σ</mi><mi>l</mi></msub></mrow><annotation encoding="application/x-tex">\sigma_l</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.58056em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit" style="margin-right:0.03588em;">σ</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.03588em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit" style="margin-right:0.01968em;">l</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>，以提供每个机器人在覆盖范围方面的贡献。</p> <p>我们已经在一个机器人上进行了初步的测试，通过检查模拟结果是否与文献中描述的结果一致来验证我们的算法实现。已经进行了五次试验，用一个没有内部孔的4-4网格，改变了每个顶点必须接受的最小访问次数D。由于使用的是单个机器人，它显然具有max li=P li和l=0，因此只考虑性能标准max li。表1显示了五次试验的平均模拟结果。</p> <p><img src="https://s1.ax1x.com/2020/09/08/wQmyW9.png" alt="wQmyW9.png"></p> <p>从这些结果可以看出，<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>L</mi><mi>R</mi><mi>T</mi><msup><mi>A</mi><mo>∗</mo></msup></mrow><annotation encoding="application/x-tex">LRTA^*</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.688696em;"></span><span class="strut bottom" style="height:0.688696em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit">L</span><span class="mord mathit" style="margin-right:0.00773em;">R</span><span class="mord mathit" style="margin-right:0.13889em;">T</span><span class="mord"><span class="mord mathit">A</span><span class="vlist"><span style="top:-0.363em;margin-right:0.05em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle uncramped"><span class="mord">∗</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>明显优于NC算法，这与文献[20]中的结果一致。当D（即每个顶点必须接收的最小访问次数）具有较高的值时，这一点更为明显；当D减小时，两种方法之间的差异就变得不那么显著，并且D=1时性能是相等的。边缘计数和巡更图*效率较低，但对于D&gt;1，后者以较少的步骤完成覆盖，对于D=10，其性能可与节点计数相媲美。然而，上述财产仅在稳定状态下得到保证（例如，通过考虑足够高的访问次数D)。在这些条件下，所有顶点都倾向于接受相同的访问次数：然后，访问所有顶点D次所需的总路径长度趋于最优。</p> <p>在验证了算法后，我们进行了多机器人覆盖测试。考虑到不同方面，进行了四组测试：</p> <ul><li>集合1：不同的网格大小，从4 4到8 8网格。</li> <li>集合2：不同的图形类型。图的最小阶数（^G)定义为顶点中最小的入射边数。在下面，M0是与没有洞的网格相对应的图，M1是有孔的网格，但没有局部切割顶点（即，删除这些顶点会使由网格诱导的图局部断开连接的顶点），M2是具有局部切割顶点的网格，但是（<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mover accent="true"><mrow><mi>G</mi></mrow><mo>^</mo></mover><mi>N</mi></msub></mrow><annotation encoding="application/x-tex">\hat{G}_N</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.9467699999999999em;"></span><span class="strut bottom" style="height:1.0967699999999998em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord accent"><span class="vlist"><span style="top:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="mord textstyle cramped"><span class="mord mathit">G</span></span></span><span style="top:-0.25233em;margin-left:0.16668em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="accent-body"><span>^</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit" style="margin-right:0.10903em;">N</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>）=2，M3是具有（<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mover accent="true"><mrow><mi>G</mi></mrow><mo>^</mo></mover><mi>N</mi></msub></mrow><annotation encoding="application/x-tex">\hat{G}_N</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.9467699999999999em;"></span><span class="strut bottom" style="height:1.0967699999999998em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord accent"><span class="vlist"><span style="top:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="mord textstyle cramped"><span class="mord mathit">G</span></span></span><span style="top:-0.25233em;margin-left:0.16668em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="accent-body"><span>^</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit" style="margin-right:0.10903em;">N</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>）=1的网格。图1显示了用于实验的M1、M2和M3图形类型。</li> <li>集合3：不同数量的机器人，从2到6。</li> <li>集合4：不同的(D)值，每个顶点的最小访问次数，从10到1。</li></ul> <p><img src="https://s1.ax1x.com/2020/09/08/wQnSYQ.png" alt="wQnSYQ.png"></p> <p>通过改变所有相关参数进行了模拟，结果见表2。</p> <p><img src="https://s1.ax1x.com/2020/09/08/wQn3m6.png" alt="wQn3m6.png"></p> <p>很容易看出，尽管节点计数算法简单，但它是最有效的算法。四组模拟的结果表明，通过增加网格大小和机器人数量，LRTA<em>的性能在节点数方面明显变差（见集合1和集合4)。显然，这与文献[20]中的结果以及单机器人情况下的仿真结果形成了对比。然而，这种差异可以通过关注LRTA</em>的更新规则来解释（备注2)。事实上，选择一个新顶点si并更新u(si)并不是原子执行的：虽然在单机器人覆盖范围内这没有影响，但是在多机器人的情况下，这可能导致效率低下（在最坏的情况下，位于顶点si中的所有机器人在每次迭代时都选择相同的后续顶点）。</p> <p>与Node Count和LRTA<em>相比，与边缘计数和PatrolGRAPH</em>相关的max li和P li值明显更高，性能更低。一般来说，可以观察到，当D=1（集合1、2、3)时，边缘计数往往比巡更图<em>执行得更好。相反，当D更高（集合4)时，PatrolGRAPH</em>的性能更好，因为它确保对所有顶点的访问频率是一致的。最后可以注意到，在集合2中，巡更图<em>的结果与所有其他算法的趋势相反：较小的值（^G)会导致更长的覆盖路径。这种行为可以通过考虑巡更图</em>需要离线优化阶段来计算转移概率矩阵的值来解释，以实现对所有顶点的访问的均匀分布。事实上，可以证明[27]对于这个优化问题只能找到一个最小二乘意义上的近似解。通过断开<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mover accent="true"><mrow><mi>G</mi></mrow><mo>^</mo></mover><mi>N</mi></msub></mrow><annotation encoding="application/x-tex">\hat{G}_N</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.9467699999999999em;"></span><span class="strut bottom" style="height:1.0967699999999998em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord accent"><span class="vlist"><span style="top:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="mord textstyle cramped"><span class="mord mathit">G</span></span></span><span style="top:-0.25233em;margin-left:0.16668em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="accent-body"><span>^</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit" style="margin-right:0.10903em;">N</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>中的顶点（即，随着转移矩阵变得越来越稀疏），自由参数<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>p</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub></mrow><annotation encoding="application/x-tex">p_{ij}</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.716668em;vertical-align:-0.286108em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">p</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord mathit">i</span><span class="mord mathit" style="margin-right:0.05724em;">j</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>的数量减少，并且找到一个解决方案变得更加困难（即访问的实际分布越来越偏离均匀分布）。</p> <p><em>备注5</em>: PatrolGRAPH*的性能低于其他算法，因为它是为连续覆盖而设计的（例如，用于巡更应用程序）。实际上，该算法的特殊性在于，通过调整转移概率矩阵的元素<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>p</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub></mrow><annotation encoding="application/x-tex">p_{ij}</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.716668em;vertical-align:-0.286108em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">p</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord mathit">i</span><span class="mord mathit" style="margin-right:0.05724em;">j</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>，它允许访问顶点的频率分布不均匀。在巡更应用中，这对于允许机器人根据优先级标准以不同频率巡逻不同区域至关重要。</p> <p><strong>结论</strong>：本文描述和研究了实时多机器人覆盖算法的一个子集：节点计数、LRTA*、边缘计数和巡更图*。所有这些算法都在机器人模拟器V-REP和ROS框架下进行了仿真测试。<br>
这些算法已经根据所需的覆盖时间（隐含地说，执行任务所需的能量）进行了分类。仿真实验结果表明，在单机器人覆盖范围内，节点计数和LRTA*返回的结果相当，优于边缘计数和巡更图*。然而，在多机器人的情况下，简单的节点计数算法被证明是最有效的解决方案：事实上，LRTA*由于用于选择下一个要访问的顶点的启发式算法的复杂性增加而存在缺陷。在单机器人和多机器人的情况下，边缘计数和巡更图的效率都比较低。然而，当每个顶点必须接收的最小访问数较高时，PatrolGRAPH*的性能变得类似于节点计数和LRTA，因为在稳定状态下，它保证了访问的均匀分布。最后，本文描述了使用ROS/ethanos框架在真实机器人上实现该系统，作为PRISMA项目的一个组成部分，该项目专注于开发和部署能够在紧急情况下运行的机器人和自主系统。</p> <h2 id="_2011-多机器人连续覆盖的最小算法"><a href="#_2011-多机器人连续覆盖的最小算法" class="header-anchor">#</a> [2011]多机器人连续覆盖的最小算法</h2> <div class="custom-block tip"><p class="custom-block-title">想法</p> <p>上一篇论文《无人机搜救覆盖算法研究》中介绍了该论文使用的算法PatrolGRAPH*，因为上一篇论文只是简单的进行了介绍，但是没有详细说明，打算好好看看，里面涉及一些数学推导。</p></div> <p>9月9日阅，论文名称：A Minimalist Algorithm for Multirobot Continuous Coverage，《IEEE Transactions on Robotics》，作者来自<em>意大利热那亚大学</em>，<a href="https://wws.lanzous.com/iiiDKggib5g" target="_blank" rel="noopener noreferrer">论文查看<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a>。</p> <blockquote><p><strong>摘要</strong>：本文描述了一种专门为解决多机器人控制频率覆盖（MRCFC）问题而设计的算法，该算法要求一组机器人按照指定的频率分布重复访问一组预先定义的环境位置。该算法对计算能力要求低，不需要机器人之间的通信，甚至可以在无记忆机器人上实现。此外，它已经被证明在统计上是完整的，并且很容易实现在真实的，有市场的机器人群上，以用于现实世界的应用。</p></blockquote> <p>关键词：<em>Ant-like algorithms</em>（类蚂蚁算法）；<em>coverage</em>（覆盖）；<em>distributed robot systems</em>（分布式机器人系统）；<em>real-time search</em>（实时搜索）</p> <p><strong>第1节 引言</strong>，本文介绍了多机器人控制频率覆盖（MRCFC）问题，该问题要求一组机器人按照指定的频率分布在不同位置重复访问一组预先确定的环境位置。该问题在许多应用中具有根本重要性，例如监视和巡逻、持续清洁拥挤区域（如商场、会议中心、餐厅等）或供应食品或饮料（在医院或宴会中）。然而，与其他与多机器人覆盖和探索相关的问题不同，它受到的关注有限。此外，文献中的几个例子（例如，见[1]）只处理以相同频率访问所有位置的特定情况，这里称为多机器人单频覆盖（MRUFC）。本文中使用的访问频率分布（或简单的访问分布）的概念描述了在给定的时间间隔内，每个位置接收的访问量与总访问量的比率。这一概念不应与每个地点每一时间单位实际接受的访问次数相混淆，后者在下文中称为访问率。这两个量明显相关，例如，所有顶点的访问率相同的情况下，对应于一个均匀的频率分布。</p> <p>本文描述了一种求解MRCFC的算法PatrolGRAPH*，它通过展示额外的期望特性来求解MRCFC，即它适用于计算能力和内存存储量较低的机器人，以及无线通信不可用或严重退化的情况，因而不适合多机器人协调。这些属性源自这样一个事实，即PatrolGRAPH*属于所谓的实时搜索和类蚂蚁算法[2]–[5]，它能够处理环境的全局表示以及全局通信能力缺失的情况。这类算法通常假设机器人在一个图形世界中导航，而这个世界只是局部已知的，即每个机器人只能访问与较近顶点（在某些情况下，还可以访问相邻顶点）相关的信息。从这些假设出发，不同的算法实现不同的策略来寻找到达目标状态的路径。实时搜索和类似蚂蚁的算法特别有趣，因为它们将计算和记忆的大部分负担从搜索代理转移到图的顶点：图本身不仅是环境拓扑的模型，而且它还成为一个可以不时构建的真实物理实体在地板上留下化学痕迹[5]，扔下鹅卵石[3]等。为此，一些工程采用射频识别（RFID）标签作为参考技术（例如，见[6]–[8]）：RFID标签成本低、距离短，以及能量自持的转发器，可以分布在环境中并且可以存储有限数量的信息。</p> <p>从理论的角度来看，与其他可以通过导航图和相关的转移概率矩阵来描述行为的实时搜索算法一样，PatrolGRAPH*依赖于马尔可夫链理论[9]。如下所示，在本文中，所谓的逆问题[10]起着基础性的作用，即选择状态间的转移概率以保证马尔可夫链趋向于规定的平稳分布。</p> <p>从技术角度来看，PatrolGRAPH*的实际实现需要智能节点（例如，基于RFID技术），可能具有有限的内存存储和通信范围，放置在机器人操作之前的环境中，并用于构建导航图。每个智能节点都包含指向相邻智能节点的导航方向，以及决定下一步访问哪些智能节点的信息。</p> <p>本文的主要贡献是介绍了MRCFC问题并提出了一种求解该问题的算法。文献中仅在特定条件下，即均匀频率分布[1]考虑过这个问题。</p> <p>本文组织如下。第二节讨论了相关工作，第三节详细介绍了MRCFC问题。第四节描述了文献中已知算法的特性，这些特性构成了第五节描述巡逻图*的基础，并在第六节中分析了它的分析性质。第七节给出了仿真实验结果。结论见第八节。</p> <p><strong>第2节 相关工作</strong>，大多数覆盖方法，无论是单机器人还是多机器人，都是基于空间分解的。例如，Ntafos[11]假设一个机器人配备了一个方形的清扫工具，并在工作区域施加了一个基于工具的简单网格（即，没有内部孔）近似，其中单元的尺寸与工具的尺寸相同。然后，将网格细分为可优化覆盖的矩形子网格，并求解旅行商问题（TSP），计算访问所有子网格的路径（在多个机器人的情况下，问题可以形式化为多个TSP-MTSP[12]）。这些思想在文献[13]中得到了扩展，它考虑了不具有局部割点的非简单网格（即，删除这些节点会使由网格引起的图局部断开）。文献[14]描述了一种完全覆盖算法，该算法基于一种新的精确细胞分解方法，称为boustrophedon细胞分解（即基于前后牛一样的运动）。在这种方法中，计算细胞的方式可以保证机器人可以很容易地在每个细胞中规划布氏运动。该方法已扩展到多机器人覆盖[15]，以尽可能减少在不同通信模型（视线通信与全球通信）下多次覆盖的区域数量。在[16]-[19]中也提出了类似的方法。在[20]中，通过执行在线分解，使用一组具有接触传感功能的方形机器人实现了对未知直线环境的完全覆盖，其中每个细胞都可以被平行于环境的一个壁的来回运动完全覆盖。在文献[21]中，提出了一种多移动机器人通过移动障碍物重新定位来扫描一个区域的规划算法，首先创建一个允许单个机器人覆盖整个区域的总路径，然后通过分解和分配总路径生成每个机器人的路径。</p> <p>与以前的方法不同，这些方法主要依赖于将工作区域分解为子区域，并为每个机器人分配一个子区域（或一组子区域）来覆盖，生成树覆盖（STC）是指所有机器人周期性地覆盖整个环境，以保证所有区域都能以统一的频率访问。单机器人的STC是在[22]和[23]中首次提出的，也是通过假设一个机器人配备了一个理想的清扫工具，并通过施加基于工具的网格近似。该方法依赖于在网格上建立最小生成树的思想，并沿着树周围的哈密顿循环移动。作者发现网格中的每个单元都以相同的频率被重复访问。文献[1]将这些思想推广到多机器人STC（MSTC），计算出哈密顿循环后，机器人沿路径均匀定位，并指示机器人在等距离的相对位置上沿着循环行走。郑等认为。[24]，为使覆盖时间最小化而计算MSTC轨迹是一个不确定性多项式时间（NP）完全问题，针对这一局限性，本文提出了一种多项式时间多机器人覆盖启发式算法MFC。在文献[25]中，提出了一种MSTC的在线变体，它假设机器人对工作区域没有先验知识，并且在存在噪声传感器数据的情况下证明是完整的和鲁棒的。在文献[26]中，描述了一种在受限工作环境中为多个移动机器人生成哈密顿探测路径的不同方法。[27]中也提出了不基于空间分解的方法，该方法引入了“伪障碍”（即已经覆盖的区域）的概念，以限制未知环境中机器人组的重复覆盖量，其中神经网络用于规划多个清洁机器人在任意变化的环境中的路径。最近[29]提出了一种行为控制框架下的完全分散巡逻的解决方案。</p> <p>最后，在监控场景中，许多工作都是在博弈论的框架下处理多机器人的覆盖问题，目的是找到最小数量的移动追踪器和一个最优的搜索策略，以保证在有界区域内找到一个试图躲避捕获的逃避者。这类方法最初被提出用于搜索图[30]，并扩展到多边形[31]、[32]、曲线[33]和没有定位能力的未知平面环境[34]。</p> <div class="custom-block tip"><p class="custom-block-title">备注1</p> <p>以前的方法都没有处理MRCFC问题；其中一些方法明确处理不太一般的MRUFC问题（例如，见[1]）。此外，前面所有的方法都有两个缺点。首先，机器人所遵循的轨迹很容易预测；这对于应用来说是一个可接受的属性，比如清洁，但是在其他环境下，比如监视，是不可接受的。这个问题在[35]-[38]中有明确阐述。第二，这些方法，除了少数例外，要求机器人事先有一个完整的环境地图，或者在运行时构建它，这对传感器融合和规划所需的计算能力有明显的影响。</p></div> <p>存在不显示重复运动模式和不依赖环境完整表示的算法：它们属于所谓的实时搜索或类似蚂蚁的方法的领域，这些方法旨在为复杂的搜索问题提供通用解决方案，但已被用于机器人覆盖和探索也。这些方法中比较简单的也许是随机游动。假设环境被建模为一个有向图2；当机器人在一个顶点时，它以均匀的概率随机选择一条离开的边，这在统计意义上保证了当探测时间趋于无限时的完全覆盖。边缘计数[39]是这种思想的一种确定性变体，机器人在给定的顶点上计算每个离开边被选中的次数，并在随后的访问中以圆形顺序选择不同的边。Node count[2]通过将一个值与图的每个顶点相关联的思想，展示了一种改进的行为，它计算到目前为止每个顶点已经被访问的频率。当一个机器人进入一个顶点时，它会将该顶点的值增加一个；然后，它会移动到目前为止访问量较少的相邻顶点。<br>
这种简单思想的变体存在（例如，见[2]、[40]和[41]）；特别是，学习实时A*[2]需要先进行一次边遍历，但可以保证更好的性能[4]。</p> <p>特别是为实时搜索而设计的机器人应用程序。在[3]、[42]和[43]中，描述了一种图形探索策略，它依赖于机器人可以放下或收集的鹅卵石的物理部署来识别已经访问过的顶点。在[5]和[44]中，提出了一系列类似蚂蚁的方法，其中机器人能够通过在未绘制地图的建筑物上留下信息素一样的化学气味痕迹，并随着时间的推移而蒸发。在文献[45]中，提出了一种节点计数的变量，它是专门为多机器人巡更而设计的，它基于空闲的概念，即从一个顶点接收到代理的访问所经过的时间量。</p> <div class="custom-block tip"><p class="custom-block-title">备注2</p> <p>现有的实时搜索和类似蚂蚁的方法可以很容易地扩展到多机器人系统。然而，它们至少有两个缺点。首先，他们既没有明确地处理MRCFC问题，也没有处理不太普遍的MRUFC问题。另一方面，我们可以用一个化学传感器来收集气味，这在技术上是一个挑战。<br>
因此，这些过程通常是通过在所有机器人之间共享的全局内存来模拟的，这显然与最初设计方法的原则相矛盾（在[46]中描述了一个反例）。</p></div> <p>假设采用了一种实时搜索算法，其中位置到地点的导航可以表示为导航图上的一个过渡，并通过一个转移概率矩阵来描述（正如它发生的那样，例如随机行走）。MRCFC可以通过求解所谓的逆问题，即选择顶点之间的转移概率来保证相应的Markov链[9]趋于指定的频率分布。在文献[10]中首次对反问题进行了形式化定义，证明了求解反问题的转移概率矩阵集是一个紧凸集。在随后的几年里，通过主要关注具有均匀平稳分布的矩阵（即双随机矩阵，例如，见[47]和[48]），以及仅在少数情况下考虑具有一般平稳分布的矩阵（例如，见[49]），来确定该集合的极值点。反问题的一个非常简单的解决方案可以通过应用所谓的metropolis规则[9]找到，这在开创性的论文[50]中首次提出。metropolis规则基本上说明，如果给定初始导航图和转移矩阵，则可以通过在原始图上添加自循环（即离开/到达同一顶点的边）来获得具有期望稳态分布的新转移矩阵，并相应地修改到相邻顶点的转移概率。但是，这对于许多应用程序来说是不够的，例如清理；连续两次清理同一位置并没有实际意义，因此，自循环会造成大量的时间浪费。接下来，在图的拓扑结构被预先给定且不可修改的附加约束下，即当一些转移概率被约束为零，而另一些转移概率被约束为正值时，反问题被考虑。最后，一些作者将逆问题称为估计转移概率的问题，这更可能产生一组观察到的聚合数据，即每个时刻每个状态中观察到的个体的比例[51]，[52]。然而，这个问题只与这里讨论的问题部分相关。</p> <p>最近的RFID技术为实现实时搜索和类似蚂蚁的方法提供了解决方案。RFID标签是一种低成本、短距离、能量自持的转发器，可以分布在环境中，并且可以存储有限的信息。在[53]中，提出了利用分散在环境中的RFID标签作为一种存储数字信息素的分布式存储器：人类或机器人携带的RFID读卡器设备，只需在现有的RFID标签上写入信息素值，就可以在环境中部署信息素轨迹，他们只需读取附近的RFID标签上的值就可以感觉到这些痕迹。Ziparo等人。[6] 以及Kleiner等人。[7] 建议部署RFID标签，同时探索救援应用的环境，最终构建一个图形状结构，随后允许机器人规划路径。在[8]中也提出了类似的想法。最近研究了在机器人技术中使用RFID标签和其他可部署传感器网络，以解决一般机器人问题（即导航和定位[54]–[56]），以及特定应用（例如清洁[57]和探索[58]）。在ROOMBA机器人小组[59]、[60]上也测试了基于RFID的导航的可行性，ROOMBA机器人是在ROBOSWARM项目[61]中开发的。然后，RFID标签已经被证明在不同类型的机器人任务中提供了重要的帮助，无论是在任务执行之前的设置阶段，还是在环境中由机器人直接部署时，RFID标签都可以提供重要的帮助。</p> <p><strong>第3节 问题陈述：多机器人控制频率覆盖</strong>，MRCFC问题包括找到一个决策过程，该决策过程允许一组机器人在一个以导航图为模型的工作空间中导航，从而确保按照规定的频率分布访问图的顶点。我们有以下假设。</p> <ol><li>GN是一个任意阶的连通无向图，可能含有圈，表示自由空间的拓扑结构，称为导航图。导航图通过一个强连接的有向图ˆGN更好地表示，该图通过将其所有边加倍并指定相反的方向而派生自GN（参见图1）。</li> <li>S={si}表示ˆGN中N个顶点的有限集合。每个顶点si都与工作空间中的一个位置相关联。</li> <li>Ai={aij}=0是离开顶点si∈S的有限的、非空的有向边集。每个边aij通过一对索引（i，j）来定义，这些索引分别标识相应的起始点和结束点。|Ai |是集合的尺寸，即偏离si的边数。</li> <li>R={ri}是一组M机器人。只有当aij∈Ai，即两个顶点相邻时，机器人才可以在工作空间中以ˆGN的形式从si移动到sj。</li> <li>λ=[λ1，····，λN]T∈N是描述每个顶点的平均访问率si∈S的向量，表示为每个时间单位的机器人数量。</li> <li>λ∗=[λ<em>1，···，λ</em>N]T∈N，0≤λ<em>i≤1，且n1λ</em>i=1是描述给定访问频率分布的向量。</li></ol> <p>必须实现以下目标：M机器人必须根据规定的访问分布λ<em>保证ˆGN的覆盖范围，即机器人必须以这样的方式移动，对于所有si，λi=Cλ</em>i，其中C是比例因子，在维度上表示为每个时间单位的机器人数量。</p> <div class="custom-block tip"><p class="custom-block-title">备注</p> <p>备注3：MRCFC问题不涉及si处的平均访问率，用每时间单位表示的机器人数量；后者取决于比例因子C，该因子测量每秒观察到M个机器人中的一个到达N个顶点之一的次数，并且取决于许多因素，包括在节点之间移动的导航时间、机器人的数量等。相反，MRCFC保证访问的指定频率分布，例如，为了保证，以si处的平均访问率λi为准，sj处的平均访问率λj加倍，即λj=2λi。</p> <p>备注4：下文将说明，根据<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msup><mi>λ</mi><mo>∗</mo></msup></mrow><annotation encoding="application/x-tex">\lambda^*</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.69444em;"></span><span class="strut bottom" style="height:0.69444em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">λ</span><span class="vlist"><span style="top:-0.363em;margin-right:0.05em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle uncramped"><span class="mord">∗</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>和<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mover accent="true"><mrow><mi>G</mi></mrow><mo>^</mo></mover><mi>N</mi></msub></mrow><annotation encoding="application/x-tex">\hat{G}_N</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.9467699999999999em;"></span><span class="strut bottom" style="height:1.0967699999999998em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord accent"><span class="vlist"><span style="top:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="mord textstyle cramped"><span class="mord mathit">G</span></span></span><span style="top:-0.25233em;margin-left:0.16668em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="accent-body"><span>^</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit" style="margin-right:0.10903em;">N</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>的拓扑结构，MRCFC问题的精确解不一定存在；在这种情况下，只考虑<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>λ</mi><mi>i</mi></msub><mo>≈</mo><mi>C</mi><msubsup><mi>λ</mi><mi>i</mi><mo>∗</mo></msubsup></mrow><annotation encoding="application/x-tex">\lambda_i \approx C\lambda_i^*</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.69444em;"></span><span class="strut bottom" style="height:0.9414399999999999em;vertical-align:-0.247em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">λ</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mrel">≈</span><span class="mord mathit" style="margin-right:0.07153em;">C</span><span class="mord"><span class="mord mathit">λ</span><span class="vlist"><span style="top:0.247em;margin-left:0em;margin-right:0.05em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span style="top:-0.363em;margin-right:0.05em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle uncramped"><span class="mord">∗</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>形式的近似解。</p> <p>备注5：具体的MRUFC问题对应于<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msup><mi>λ</mi><mo>∗</mo></msup></mrow><annotation encoding="application/x-tex">\lambda^*</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.69444em;"></span><span class="strut bottom" style="height:0.69444em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">λ</span><span class="vlist"><span style="top:-0.363em;margin-right:0.05em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle uncramped"><span class="mord">∗</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>具有均匀分布的情况，即对于所有<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>s</mi><mi>i</mi></msub></mrow><annotation encoding="application/x-tex">s_i</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.58056em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">s</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>，<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msubsup><mi>λ</mi><mi>i</mi><mo>∗</mo></msubsup><mo>=</mo><mn>1</mn><mi mathvariant="normal">/</mi><mi>N</mi></mrow><annotation encoding="application/x-tex">\lambda ^*_i=1/N</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">λ</span><span class="vlist"><span style="top:0.247em;margin-left:0em;margin-right:0.05em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span style="top:-0.363em;margin-right:0.05em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle uncramped"><span class="mord">∗</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mrel">=</span><span class="mord mathrm">1</span><span class="mord mathrm">/</span><span class="mord mathit" style="margin-right:0.10903em;">N</span></span></span></span>。</p> <p>备注6：对于真实世界的实现，假设机器人配备了适当的顶点到顶点导航算法，以及障碍物回避和定位算法。特别地，假设顶点si通过aij链接到相邻顶点sj，只要有可能通过“简单运动”（例如沿直线移动）从si开始到达sj。</p></div> <p>在这项研究中，额外的期望特性被考虑在内，这些特性不一定与MRCFC问题有关，但是可以发挥重要作用，使得能够在具有最小计算、内存和通信能力的负担得起和可靠的机器人上实现。</p> <ol><li>低计算成本。求解MRCFC的算法应该在计算能力有限的非常简单的机器人上并行执行。</li> <li>本地存储器。图形ˆGN可能永远不会存储在机器人的内存中，并且，通常，机器人在操作期间不应访问存储有ˆGN的中央存储库。相反，所有关于一个通用顶点的信息，以及离开它的边，都应该存储到一个位于环境中的智能节点中。为了帮助机器人在工作空间中进行物理导航，每个智能节点都可以存储导航方向，以到达相邻的智能节点。</li> <li>本地通信。机器人只能在很短的通信范围内与智能节点进行通信，并且能够通过对智能节点的写入/读取来间接地与其他机器人进行通信。假设：一个机器人不能与另一个机器人直接通信；一个智能节点不能与另一个智能节点直接通信；一个机器人不能同时与两个智能节点通信。</li> <li>不可预测性。机器人所走的路径很难被外部观察者预测，这是监视和巡逻等应用的基本特征。</li></ol> <div class="custom-block tip"><p class="custom-block-title">备注7</p> <p>从实际的角度来看，上述性质具有相关性。例如，通过使用智能节点在环境中嵌入信息，可以在不需要配置阶段的情况下将机器人无缝地添加到团队中。此外，对于安全相关应用，如果具有本地通信能力的智能节点只存储本地信息，则潜在入侵者更难全面了解系统行为；另一方面，存储全局信息，可能是在机器人上，可能会引发安全问题。</p></div> <p><strong>第4节 多机器人覆盖的随机行走和边缘计数</strong>，在这一节中，我们将重点讨论多机器人覆盖场景，回顾随机游走和边缘计数算法的已知性质，这将为引入新的巡逻图<em>算法提供基础。特别地，下面假设M个机器人并行执行算法1的特定实例，该算法描述了一类导航策略，包括随机行走、边缘计数以及巡逻图</em>。</p> <p><img src="https://s1.ax1x.com/2020/09/08/wluffg.png" alt="wluffg.png"></p> <p>算法1本身很简单。第1行选择一个任意的起始点sstart，对于不同的机器人，这个起点可能不同。当机器人处于顶点sc时，第3行的choose（sc，Alg）根据一个依赖于算法Alg的策略返回其中一个有向边acl∈Ac，该算法识别了特定的导航策略。第4行总结了机器人移动到下一个顶点所需的所有步骤（包括运动控制、避障、定位等）。如前一节所述，假设每个机器人能够沿着边缘acl移动并正确到达下一个智能节点，即配备适当的硬件和软件子系统来实现这一点。第5行中的运算符such（sc，acl）返回从顶点sc∈GN开始遍历边acl∈Ac的后续顶点。在实际应用中，该算子的输出是机器人实际运动的效果。</p> <div class="custom-block tip"><p class="custom-block-title">备注8</p> <p>在现实世界中，操作符<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>c</mi><mi>h</mi><mi>o</mi><mi>o</mi><mi>s</mi><mi>e</mi><mo>(</mo><mi>s</mi><mi>c</mi><mo separator="true">,</mo><mi>A</mi><mi>l</mi><mi>g</mi><mo>)</mo></mrow><annotation encoding="application/x-tex">choose(sc,Alg)</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mord mathit">c</span><span class="mord mathit">h</span><span class="mord mathit">o</span><span class="mord mathit">o</span><span class="mord mathit">s</span><span class="mord mathit">e</span><span class="mopen">(</span><span class="mord mathit">s</span><span class="mord mathit">c</span><span class="mpunct">,</span><span class="mord mathit">A</span><span class="mord mathit" style="margin-right:0.01968em;">l</span><span class="mord mathit" style="margin-right:0.03588em;">g</span><span class="mclose">)</span></span></span></span>要求机器人与智能节点通信，智能节点存储顶点sc的信息，并检索导航方向，为下一个顶点的移动提供指导。</p></div> <p>随机游动和边缘计数的行为可以通过适当地实现算子选择（sc，Alg）得到，如算法2和3所定义的。</p> <p><img src="https://s1.ax1x.com/2020/09/08/wlKZ1H.png" alt="wlKZ1H.png"></p> <p>随机游动随机选取一条与sc偏离的边，当对节点sc的访问次数趋于无穷大时，选择的相对频率趋于1/| Ac |。算法2的第1行在集合Ac中选取一个离散均匀分布的边acl。</p> <p>边缘计数按循环顺序选择离开sc的边缘，以保证每次| Ac |访问时，所有边缘都以相同的相对频率1/| Ac |选择。算法3的第1行根据switchc的当前值在集合Ac中选择一个边缘acl，第2行更新switchc以指向下一个边缘。</p> <p>为了演示M个机器人并行执行算法1时的随机行走和边缘计数行为，可以方便地将系统建模为一个封闭排队网络（CQN），这是过程自动化、通信网络等应用领域中常见的动态模型[62]，旨在描述和分析服务中心如何及时分配给客户。CQNs可以用连续时间马尔可夫链（CTMCs）建模，最终目的是确定描述在给定时间处于给定状态的概率的平稳分布。然而，由于MRCFC问题的重点是访问在顶点上的频率分布，在下面，它将足够考虑流量平衡方程为每个顶点的图。</p> <p>一般来说，CQN由：</p> <ol><li>服务中心的数量N（对应于ˆGN的顶点）</li> <li>客户的数量M（对应于机器人）；</li> <li>到/离开节点si的平均到达/离开率λi（即，表示为到达的客户数除以时间），以及si中的到达和离开率在CQN中是相同的（显然，是对应的）对于访问速率），由于客户不能从外部退出或进入网络；</li> <li>在si并行运行的服务器数量mi（即机器人在si中同时执行一个任务有多少个空闲空间）、ti请求在si中完成一个任务的时间，以及最大服务速率μi=1/ti（即。每个时间单位有多少机器人可以完成任务）</li> <li>一种路由策略，用N×N转移矩阵P表示。</li></ol> <p>转移矩阵P值得注意。在随机行走的情况下，泛型元素pij∈P描述了si中的机器人完成任务后朝sj前进的概率；在边缘计数的情况下，pij∈P描述了机器人访问si后必须朝sj前进的比率。</p> <p>通过回顾| Ai |是离开si的边数，可以很容易地验证随机游走和边计数的路由策略可以用一个转移矩阵P来建模，其元素pij设置如下：如果si和sj相邻，则：</p> <p><span class="katex-display"><span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>p</mi><mrow><mi>i</mi><mo separator="true">,</mo><mi>j</mi></mrow></msub><mo>=</mo><mfrac><mrow><mn>1</mn></mrow><mrow><mi mathvariant="normal">∣</mi><msub><mi>A</mi><mi>i</mi></msub><mi mathvariant="normal">∣</mi></mrow></mfrac></mrow><annotation encoding="application/x-tex">p_{i,j}=\frac{1}{|A_i|}
</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:1.32144em;"></span><span class="strut bottom" style="height:2.25744em;vertical-align:-0.936em;"></span><span class="base displaystyle textstyle uncramped"><span class="mord"><span class="mord mathit">p</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord mathit">i</span><span class="mpunct">,</span><span class="mord mathit" style="margin-right:0.05724em;">j</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mrel">=</span><span class="mord reset-textstyle displaystyle textstyle uncramped"><span class="sizing reset-size5 size5 reset-textstyle textstyle uncramped nulldelimiter"></span><span class="mfrac"><span class="vlist"><span style="top:0.686em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle textstyle cramped"><span class="mord textstyle cramped"><span class="mord mathrm">∣</span><span class="mord"><span class="mord mathit">A</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mord mathrm">∣</span></span></span></span><span style="top:-0.2300000000000001em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle textstyle uncramped frac-line"></span></span><span style="top:-0.677em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle textstyle uncramped"><span class="mord textstyle uncramped"><span class="mord mathrm">1</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="sizing reset-size5 size5 reset-textstyle textstyle uncramped nulldelimiter"></span></span></span></span></span></span></p> <p>如果si和sj不相邻，则:</p> <p><span class="katex-display"><span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>p</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub><mo>=</mo><mn>0</mn></mrow><annotation encoding="application/x-tex">p_{ij}=0
</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.64444em;"></span><span class="strut bottom" style="height:0.9305479999999999em;vertical-align:-0.286108em;"></span><span class="base displaystyle textstyle uncramped"><span class="mord"><span class="mord mathit">p</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord mathit">i</span><span class="mord mathit" style="margin-right:0.05724em;">j</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mrel">=</span><span class="mord mathrm">0</span></span></span></span></span></p> <p>方程（1）和（2）指出，对于偏离si的所有边，选择aij的概率（在随机游动的情况下）或相对频率（在边缘计数的情况下）是相同的。由于P将在下文中用于编写描述稳态平均访问率的流量平衡方程，因此概率和相对频率具有相同的含义。</p> <p>从（1）和（2）开始，定义了随机游走和边计数的路由策略，由于没有顶点与自身相连，相应的转移矩阵P是对角线上有零的非对称矩阵，即：</p> <p><img src="https://s1.ax1x.com/2020/09/08/wlM1q1.png" alt="wlM1q1.png"></p> <p>P是一个随机矩阵[63]，即它受以下约束：</p> <p><img src="https://s1.ax1x.com/2020/09/08/wlMJIK.png" alt="wlMJIK.png"></p> <p>另外，P是不可约的，因为ˆGN是强连通的（即，在有限的跃迁次数中，可以从其他每个顶点到达每个顶点）。</p> <p>在这些条件下，Markov过程理论的一个已知结果是，每个顶点si接收到的平均访问率λi与si的入射边数Ai成正比（即返回si的时间与Ai成反比，见[63]）。为了验证这一点，考虑在CQN中，稳态下的平均到达率等于每个顶点的平均离开率。然后，可以写出以下流量平衡方程：</p> <p><img src="https://s1.ax1x.com/2020/09/08/wlMURe.png" alt="wlMURe.png"></p> <p>设1=[1。。。1] T是酉向量。矩阵形式的流量平衡方程，考虑到在ˆGN的所有顶点上计算的平均访问率之和是常数的附加要求，可以写成:</p> <p><img src="https://s1.ax1x.com/2020/09/08/wlMsdP.png" alt="wlMsdP.png"></p> <p>当P是随机且不可约时，系统（7）只有一个解。为了证明这一说法，可以观察到，根据Perron–Frobenius定理[63]，流量平衡方程包含所有正分量的解（以下称为正解），这些正分量对应于特征值为1的P的左特征向量。（7）中的最后一个方程允许我们确定其分量总和为C的唯一解。特别是，通过设置C=1，得到的访问率正好对应于顶点访问的频率分布。解决方案有形式:</p> <p><img src="https://s1.ax1x.com/2020/09/08/wlMfMj.png" alt="wlMfMj.png"></p> <p>这可以通过将（8）代入（6）和（7）来验证，并回顾，对于（6）左侧的通用顶点si，在对应于相邻顶点sj的等式右侧，正好有| Ai |元素pji=1/| Aj |。</p> <div class="custom-block tip"><p class="custom-block-title">备注9</p> <p>在流量平衡方程（6）中，没有出现参数mi（即允许同时以si执行指定任务的机器人数量）、ti（即完成si中的任务所需的时间，以及顶点之间的距离（或导航时间）、机器人之间因交通而产生的干扰等，即不需要计算稳态时λ各分量之间的相互关系，对应于访问频率分布。如下所示，它们通过确定参数C的适当值来计算访问率λ的实际值。</p></div> <p>在随机游走和边缘计数的情况下，即使在趋于无穷大的时间间隔内平均访问的频率分布是相同的，但是当考虑较短的时间间隔时，后者会更好地分布访问。这是因为边缘计数以循环顺序选择所有偏离sc的边，从而确保在每个时刻，选择acj的机器人的比率在有界限制内近似pcj。通过实验可以更好地比较随机游走和边缘计数的行为[64]。</p> <p>随机游动和边缘计数的性质不适合于求解MRCFC问题，因为访问的频率分布与顶点的度数成正比。在下一节中，将介绍巡逻图*算法，该算法允许机器人求解MRCFC的一般公式，同时表现出良好的瞬态行为。</p> <p><strong>第5节 巡更图*-算法描述</strong>，巡更图*是本研究所考虑的解决MRCFC问题的导航策略，由以下两个阶段组成：</p> <ol><li>对于每个给定的MRCFC问题只执行一次的离线设置阶段；</li> <li>一种在线阶段，在覆盖期间由M个机器人完全分布并并行执行。</li></ol> <p>离线阶段的主要目的是找到所谓反问题的解决方案，即选择P来保证（7）的解（C=1）对应于规定的频率分布。离线阶段不涉及单个机器人。</p> <p>在线阶段假设M个机器人并行执行算法1的特定实例，通过执行特定策略来选择下一个要访问的顶点。值得注意的是，在这个阶段，机器人只需要从最近的智能节点获取导航所需的局部信息。这种机制也很重要，因为它可以在没有机器人自身先验配置阶段的情况下将新机器人插入工作组。</p> <div class="custom-block tip"><p class="custom-block-title">备注</p> <p>备注10：在实际实现中，矩阵P可以分布式存储在构成导航图的智能节点中。特别是，每个智能节点存储矩阵P的不同行（实际上只存储其非零元素）。</p> <p>备注11：原则上，离线阶段计算的转移矩阵P可用于实现求解MRCFC的非均匀随机游走算法。如第七节所示，巡更图*在线阶段旨在保证在短时间间隔内，更好地处理非均匀随机行走的性能。</p></div> <p><em>5.1 离线阶段</em>，在[10]中，已经证明了总是有可能找到一个随机矩阵P具有规定的平稳分布（这在Markov链理论中也被称为逆问题）。特别是，对于C＝1，并且对于任何给定的频率分布λ*，可以直接确定元素pij的适当分配，从而满足（4）、（5）和（7）。<br>
事实上，通过将λ*代入流量平衡方程（6），pji对于完全连通图的一个可能的解决方案如下：</p> <p><img src="https://s1.ax1x.com/2020/09/08/wlQoXd.png" alt="wlQoXd.png"></p> <p>在λ*具有均匀分布的特殊情况下，（6）变为：</p> <p><img src="https://s1.ax1x.com/2020/09/08/wlQ7nA.png" alt="wlQ7nA.png"></p> <p>方程（4）、（5）和（10）对应于双随机转移矩阵的定义，其平稳向量为均匀分布。</p> <p>反问题有时通过采用所谓的大都会规则[9]来解决。假设转移矩阵P是一个对角线上为零的非对称矩阵，因为没有顶点与其自身相连，如（3）所示。metropolis规则指出，通过让对角线中的元素非零（即，通过添加离开/到达同一顶点的自循环）并相应地修改到相邻顶点的跃迁概率，可以获得一个新的具有期望稳态分布的转移矩阵P。实际上，在导航图ˆGN中添加自循环在某些应用程序中是有意义的，但在其他应用程序中则没有意义。例如，在清洁方面，同一个房间打扫两次确实没有意义。在监控应用中，例如，如果重点是定期检查门、窗和报警器的状态，周围没有丢失的物体等，那么自循环似乎是浪费时间，因此必须避免。</p> <p>因此，给出了图710中所有的导航项的定义是可能的。特别是，只有当πGN中的两个顶点si、sj相邻时，才能给pij赋值。当不存在从si到sj的边时，矩阵P中的对应项被限制为零，并且无法通过采用标准技术（例如metropolis规则）找到MRCFC的解决方案。</p> <p>让我们考虑图2中的情况：只有p12、p21、p23和p32可以被任意分配，而所有剩余的元素都被限制为零。为了简单起见，还假设λ*是均匀分布。方程（4）和（9）要求P是双随机的，其非零元素受</p> <p><img src="https://s1.ax1x.com/2020/09/08/wl1zes.png" alt="wl1zes.png"></p> <p>上述系统没有可接受的解决方案。事实上，顶点2不可能得到与顶点1和顶点3相同的访问次数，因为机器人必须在从1移动到3时访问2，反之亦然。</p> <p>由于MRCFC问题的精确解不一定存在，所以巡更图的离线阶段在最小二乘法意义下寻找解决方案。</p> <p>这需要一些额外的定义。首先，将b=[b1···bN2]T∈N2定义为一个向量，它将转移矩阵P的元素参数化，使P=P（b）∈N×N。这是通过理想地将b细分为N个长度为N的向量，并将它们相互叠加以建立P的行。更正式些</p> <p><img src="https://s1.ax1x.com/2020/09/08/wl3nT1.png" alt="wl3nT1.png"></p> <p><img src="https://s1.ax1x.com/2020/09/08/wl3QfK.png" alt="wl3QfK.png"></p> <p>第二，只要P=P（b）是随机且强连通的，则稳态平均访问率向量可以表示为函数λ=λ（b）：N2→N，并通过求解以下系统来计算：</p> <p><img src="https://s1.ax1x.com/2020/09/08/wl3akt.png" alt="wl3akt.png"></p> <p>（14）中的前N行对应于每个b，稳态（6）下的流量平衡方程。最后一行指出，平均访问率之和是常数，这是在所有顶点上计算的。由于离线阶段的目的是保证规定的访问频率分布，在下面，可以假设C=1。系统（14）对每一个b都有一个解λ=λ（b），确保P（b）是随机且完全连通的。</p> <p>最后，让λ<em>代表MRCFC问题的理想期望解。然后，λ</em>−λ（b）表示实际频率分布与期望频率分布之间的不匹配，作为导航图结构的函数（由矩阵P的条目表示）。</p> <p>经过上述讨论，PatrolGRAPH*算法的离线阶段是针对未知变量b寻求以下最小化问题的解决方案。</p> <p>问题1：这是由:</p> <p><img src="https://s1.ax1x.com/2020/09/08/wl3D1S.png" alt="wl3D1S.png"></p> <p>从属于:</p> <p><img src="https://s1.ax1x.com/2020/09/08/wl3c0s.png" alt="wl3c0s.png"></p> <p>方程（16）–（18）保证了P（b）是强连通随机矩阵，只要ˆGN是强连通图。特别是，（16）简单地对应于（4）为b重写。方程（17）和（18）与（5）相对应，但附加约束条件是，两个相邻的顶点必须指定大于|的正值，而在ˆGN中不相邻的两个顶点必须指定一个零值。这足以（即使不必要）保证在最小化过程之后，得到的P（b）仍然是强连接的。综上所述，（17）和（18）加在一起，确保了在最小化过程之后保持了ˆGN的拓扑结构。</p> <p>注12：根据图的拓扑结构，上述最小化问题的解决可能导致矩阵P（b），其平稳向量可能与期望的频率分布λ<em>相差甚远。再次考虑图2中的图，假设现在λ</em>1=λ<em>3=nλ</em>2，且n&gt;1，即每n次访问s1和s3，则顶点s2只应访问一次。这个问题并没有一个精确的解决方案，因为图的拓扑结构迫使s2接收到的访问量是总访问量的一半（正如前面讨论的MRUFC案例中所发生的那样）。此外，最小二乘意义下的最优解是期望解的2n因子近似值，因为λ*2的访问次数比需要的次数多2n次。</p> <p>注13：即使这项研究集中在稳态特性上，系统也有明显的瞬态行为。平稳性的收敛速度（也称为马尔可夫链的混合速率）取决于转移矩阵P的第二大（绝对值）特征值[63]。对于每个平稳分布λ，文献[10]证明了转移概率矩阵P（b）的集合，使得λ=PT（b）λ是一个紧凸集。然后，原则上可以在寻找MRCFC溶液的同时，寻找混合速率最快的过渡矩阵。这个问题在[65]中已经讨论过，但仅在对称转移矩阵的情况下（即，当平衡分布是均匀的）。对收敛速度的详细分析不在本文的讨论范围之内。</p> <p>注14：如果要控制平均访问率的实际值λ=Cλ*，则需要控制比例因子C，可根据mi、ti、导航时间和其他相关量选择巡更机器人的数量M（详见CQN理论[62]）。通过观察λ*i测量在线阶段从顶点si开始的导航路径的比率，可以获得C的近似估计。通过考虑si中的平均服务时间ti和沿aij移动的平均导航时间τij（其中ti和τij包括由于交通和其他随机因素造成的可能延迟），可以计算:</p> <p><img src="https://s1.ax1x.com/2020/09/08/wl3oX4.png" alt="wl3oX4.png"></p> <p>式中¦τ是平均导航时间（为导航选择的所有边的平均值），以及</p> <p><img src="https://s1.ax1x.com/2020/09/08/wl37nJ.png" alt="wl37nJ.png"></p> <p>式中，t是平均服务时间（在访问的所有顶点上取平均值）。最后，通过选择巡逻机器人的数量M，可以控制比例因子C</p> <p><img src="https://s1.ax1x.com/2020/09/08/wl3LA1.png" alt="wl3LA1.png"></p> <p>它测量了每秒观察到一个M机器人到达N个顶点中的一个的次数。注意，如果允许改变图的拓扑结构，也可以通过连接两个不相邻的顶点si和sj来增加C，这两个顶点的平均导航时间τij使（19）中的τ减小。τii=0的si中的自环是这种可能性的一个特例。</p> <p><em>5.2 在线阶段</em>，在正确设置P之后，巡检图*的在线阶段实现算法4中描述的操作符选择（sc，Alg）的特定实例。</p> <p><img src="https://s1.ax1x.com/2020/09/08/wl8Sje.png" alt="wl8Sje.png"></p> <p>为了介绍巡逻图*之外的基本原理，我们假设一个机器人到达顶点sc。然后，操作员choose（sc，Alg）必须决定跟随哪个边才能继续。非均匀随机游走策略只需根据离线阶段计算的概率分布选择出站边缘。在这个时间里，机器人的相对频率是无穷大的。在Patrolograph*的情况下，路由策略有类似的原理，但是为了确保在每一时刻，选择acj的机器人的比率在有界限制内接近pcj，对其进行了修改。这保证了访问的频率分布，当在短时间内平均时，比非均匀随机游动更接近于平稳向量。</p> <p>更详细地说，算法4的工作原理如下。让我们定义以下变量。</p> <ol><li>vi是一个初始化为0的整数变量，它统计顶点si的总访问次数。</li> <li>kij是一个初始化为0的整数变量，它统计机器人在离开si后选择进入sj的次数。</li> <li>ηj为标准差σ的零均值随机变量，即ηj=N（0，σ）。</li></ol> <p>假设| Ac |随机变量ηj等于零。第1行更新sc接收到的访问次数vc；第3行计算每个相邻顶点的比率kcj/vc与所需相对频率pcj之间的误差Δpcj；第5行选择Δpcj最小的边缘acl；第6行更新kcl。</p> <p>现在让我们考虑第3行中的随机变量ηj=N（0，σ）：通过从第3行的kcj中减去|ηj |，存在一个非零概率，即Δpcj不是最小值的边（即，已经被选择）。如果应用程序要求，此机制可用于有目的地引入不可预测因素。</p> <p>在第VI-B节中，证明了算法4中的巡更图*沿离开si的边分配机器人的路由策略收敛到期望的相对频率pij，因此可以将其建模为具有转移矩阵P的Markov链。</p> <p>最后，与非均匀随机游动相似，在线算法具有第三节中定义的理想特性。具体来说，我们有以下几点。</p> <p>1）低计算成本。计算要求很低，因为巡更图*只需要更新vc和kcl并计算Δpcj。后者需要考虑所有偏离sc的| Ac |边，因此具有线性计算复杂性O（| Ac |）。</p> <p>2）本地存储器。内存需求非常有限，因为PatrolGRAPH*要求在与vertex sc相关联的智能节点中存储变量vc（计算接收的访问数）、一组| Ac |变量kcj，它统计每个边被选择的次数，最后，一组| Ac |变量pcj，存储所需的相对值每个离开边缘的频率。<br>
总之，对于每个智能节点，内存复杂性为O（| Ac |）。</p> <p>3）本地通信。机器人只需要向智能节点写入/从智能节点读取数据，智能节点存储了有关它们当前所在的图形顶点的信息。</p> <p>4） 不可预测性。通过适当增加随机变量η的方差σ（如果应用程序不要求不可预测性，则可以将其设为零），从而使巡更图*变得不可预测。<br>
然而，当期望的访问频率分布不均匀时，入侵者可以理想地观察哪些区域访问频率较低，并可能使用这些信息。</p> <p><strong>第6节 巡逻图*——算法的性质</strong>，本节的目标是讨论巡逻图*的脱机和联机阶段的一些属性。</p> <p><em>6.1 离线阶段</em>，PatrolGRAPH<em>的离线阶段需要找到问题1的解，问题1是一个包含最小点b</em>的约束优化问题，因为（15）是一个下界函数，（16）–（18）中的约束定义了一个有界闭集。</p> <p>λ（b）对b的非线性依赖性使得问题1的凸性分析不直接。因此，保守的方法需要采用全局优化算法。尽管最小化是离线进行的，因此，解决问题1所需的时间不应被视为关键问题，但随着图的大小N的增加，全局方法的计算复杂性可能变得不可接受[66]。模拟实验（在第七节讨论的那些实验中）表明，使用global5和local6搜索算法计算的问题1的解总是与最小残差的可比值相对应。</p> <p>在求解给定λ<em>的问题1时，有必要检查MRCFC是否有精确解，即，如果b</em>存在，使得λ*=λ（b*）=PT（b<em>λ（b</em>）。可以通过解决以下问题来执行测试。</p> <p><em>问题2</em>：这是由：</p> <p><img src="https://s1.ax1x.com/2020/09/10/wGiNKx.png" alt="wGiNKx.png"></p> <p>受限于（16）-（18）。</p> <p>即使问题1和问题2是不同的，只要存在MRCFC的精确解，它们都具有相同的紧凸全局极小值集[10]。因此，如果存在MRCFC的精确解，则可以通过求解问题2找到它。与问题1相比，问题2的优势在于前者可以表述为一个受线性约束的二次优化问题[66]。</p> <p>定理1：问题2是一个二次优化问题。从（13）可以看出，PT（b）相对于b是线性的；那么，可以将（22）改写为：</p> <p><img src="https://s1.ax1x.com/2020/09/10/wGioGj.png" alt="wGioGj.png"></p> <p>式中，Γ∈N×N2定义为：</p> <p><img src="https://s1.ax1x.com/2020/09/10/wGFSJJ.png" alt="wGFSJJ.png"></p> <p>其中I∈N×N为单位矩阵。</p> <p>要最小化的函数是一个关于b的半定正二次型。</p> <p><em>6.2 在线阶段</em>，对下面的定理给出了一个证明。</p> <p><strong>结论</strong>：本文介绍了MRCFC问题，该问题要求一组机器人按照指定的频率分布重复访问一组预先定义的环境位置。此外，还描述了能够求解MRCFC的巡逻图算法。</p> <p>通过仿真实验验证了巡逻图的理论性质。据作者所知，文献中没有其他算法能够解决MRCFC的一般公式，而有些算法可以解决MRUFC问题，即导航图的所有顶点必须以均匀的频率分布访问。在定性和定量的基础上与其他算法进行了比较，概述了巡更图*的优点。</p> <p>PatrolGRAPH*算法可通过分配具有适当特性的智能节点来实现，例如具有较小存储容量和通信范围的无源（能量自持）RFID标签。该技术使算法在低计算量、本地内存、本地通信和不可预测性等方面获得了理想的性能，在实际实现中发挥了重要作用。</p> <h2 id="_2005🌕-基于团队理论的多无人机任务分配"><a href="#_2005🌕-基于团队理论的多无人机任务分配" class="header-anchor">#</a> [2005🌕]基于团队理论的多无人机任务分配</h2> <div class="custom-block tip"><p class="custom-block-title">想法</p> <p>这篇文章很老，但是引用率很高，文章也不是很长，所以主体部分进行全文翻译，一边翻译一边理解论文。</p></div> <p>9月10日阅，论文名称：Multi-UAV Task Allocation using Team Theory，《the European Control Conference 2005》，<a href="https://wws.lanzous.com/iE2CTght7mb" target="_blank" rel="noopener noreferrer">论文查看<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a>。</p> <blockquote><p><strong>摘要</strong>：战场多无人机搜索与攻击任务涉及到将无人机有效地分配给不同的目标任务。当无人机之间没有通信，且无人机传感器探测目标和邻近无人机并评估目标状态时，任务分配变得困难。本文提出了一种团队理论方法，在无人机之间不通信、传感器距离有限的情况下，有效地将无人机分配给目标。研究了团队理论方法在战场场景下任务分配的性能。通过团队理论得到的性能与其他两种方法进行了比较，一种是传感器距离有限，但无人机之间有通信；另一种是传感器距离有限，无人机之间没有通信的贪婪策略。研究发现，团队理论策略在假设传感器范围有限且无通信的情况下，表现最佳。</p></blockquote> <p><strong>第1节 引言</strong>，无人机被广泛用于军事目的，如搜索、监视和战场弹药[1]-[10]。它们在收集来自敌对和未知地区的信息方面起着至关重要的作用。这些无人机还可以作为弹药，搜索、攻击和摧毁未知区域的目标。用于这些应用的无人机可能能力有限，可能不具备单独完成任务所需的隐身能力和弹药有效载荷。因此，有一种情况下，这种无人机部署成群结队。对于这些无人机群体来说，一个理想的特性是具有自主决策和协调能力。无人机在执行搜索时，可能会在搜索区域内找到多个目标。无人机的数量可能超过可用目标的数量，或者可用目标的数量可能超过无人机的数量。无论哪种情况，我们都需要一种有效的任务分配方法来分配无人机给目标。然而，该算法必须是分散的，并且适合在多智能体无人机群中实现。一个有效的任务分配策略应该是通过与其他无人机的协作和协调，在最短的时间内完成任务（即摧毁所有目标）[1]。合作可以通过与邻近的无人机进行明示或暗示的通信来实现。当无人机之间没有通信时，决策就成为一项困难的任务。任务分配问题的经典解决方案是有一个集中的任务分配系统，为无人机生成必要的命令。但是，集中式任务分配系统具有众所周知的局限性，不能很好地解决可伸缩性问题。因此，有必要开发一种分散的任务分配算法。在这里，我们使用团队理论的概念，为多个无人机在未知区域执行搜索和攻击任务时不进行通信，开发了这样一个分散的任务分配算法。</p> <p>我们考虑的无人机体积小，燃料容量有限（飞行时间有限），传感能力有限。无人机只能探测到传感器范围内的邻近无人机和目标。无人机不与邻居通信，只根据从传感器接收到的信息做出决策。假设所有的无人机都是同质的，具有恒定的速度并且没有转弯半径限制。无人机必须在规定的飞行时间内执行任务。无人机之间的碰撞避免在这里不是一个问题。</p> <p>无人机可以执行搜索、攻击、推测和战损评估（BDA）任务。搜索任务是指在未知区域内搜索目标。无人机一旦发现目标，就会执行推测性任务，以确保目标是真实目标而不是假目标。被验证为真实目标的目标被无人机攻击。攻击目标后，进行战斗损伤评估。BDA任务给出对目标造成的伤害的估计值。推测任务和BDA任务生成有关目标状态的信息，前者在攻击前，后者在攻击后。由于无人机中无人机没有受到其他无人机的攻击，因此无人机没有受到任何其他传感器的攻击。因此，它必须以一定的概率执行BDA。由于BDA任务和推测性任务在本质上是相似的，我们将BDA任务也归类为推测性任务。</p> <p>推测任务的执行方式如下：无人机一旦发现目标，就以一定的概率估计目标的状态。目标可以有三种不同的状态–（a）未被攻击（NA）（b）部分摧毁（PD）（c）完全摧毁或虚假目标（CDF）。目标状态概率是无人机与目标之间距离的函数。当无人机向目标移动时，对目标状态的估计会更新。因此，推测性任务是在到达目标的路上，在每个时间步执行的。</p> <p>每个无人机根据目标状态的估计独立地进行决策。无人机的决定也取决于邻近无人机的数量。在这里，我们假设无人机没有足够的内存来记忆到目前为止所经过的路径，以及已经被攻击目标的位置。</p> <p><em>1.1 论文方面</em>，无人机任务分配是近年来研究的热点。Nygard等人。[1] 提出了一种无人机分配给目标的网络流优化模型。将网络优化问题归结为一个线性规划问题，以获得无人机配置决策。作者假设无人机之间存在全球通信。Schumacher（[2]，[3]，[4]）对具有可变路径长度的广域搜索弹药、具有时间约束的分配和路径规划的网络流模型进行了深入的研究。钱德勒等人。（[5]，[6]），探索各种其他技术，如迭代网络流、拍卖、线性规划和混合整数线性规划，用于多无人机任务分配。Mitchell[7]研究了通信延迟对迭代网络流模型任务分配的影响。Curtis[8]提出了一种同时搜索和目标分配的任务分配方法，将搜索和任务分配作为一个单一的优化问题。Turra等人。[9] 提出了一种多无人机在未知区域执行搜索、识别、攻击和验证任务的任务分配算法。这些作者还解决了无人机的避障问题。Jin等人。[10] 针对文[5]、[6]提出了一种概率任务分配方案。</p> <p>在上述论文中提出的大多数算法中，尽管智能体本身的传感器范围有限，但它们都假定了智能体之间的全局通信。因此，由一个代理获得的信息被传递给所有其他代理。然而，任务分配决策算法是由代理自主执行的。团队理论方法允许无人机在与其他无人机没有信息交换或无人机之间没有通信的情况下独立进行决策。无人机只能感知到它们的邻居的位置。Radner[11]首先证明了分散最优团队决策问题可以用线性规划技术来描述和解决。在[12]和[13]中描述了将团队理论应用于制造企业并获得团队最优决策的例子。Waal和Van Schuppen[14]为离散行动空间的团队问题提供了最优的团队决策解。Rajnarayan和Ghose[15]将多智能体搜索问题作为团队理论框架中的一个问题，提出了确定搜索区域的最优解。Rusmevichientong和Van Roy[16]表明，通过代理链进行局部信息感知可以为整个代理团队产生近乎最优的决策。</p> <p>在这篇论文中，我们提出了一个任务分配算法，用于多个无人机在未知区域执行搜索、攻击、推测和战斗损伤评估任务，并在下一节给出的场景中使用团队理论的概念。这是利用深奥的团队理论结果来解决实际决策问题的少数应用程序之一。</p> <p><em>1.2 问题场景</em>，考虑由未知数量的目标组成的平面搜索空间。目标的位置对无人机来说是事先不知道的。搜索和摧毁任务将通过派遣一支无人机舰队搜索一个区域，并在无人机的飞行耐力时间内尽可能多地摧毁目标。这些任务包括搜索、攻击和推测/战斗损伤评估（speculate/battle damage assessment, BDA）。搜索任务包括搜索环境中的目标，而攻击任务涉及攻击目标，推测/BDA任务涉及估计目标的价值。为了更快地完成任务，无人机之间必须相互协调。无人机之间的协调必须在没有通信的情况下实现。无人机的传感器范围也有限。无人机可以感知传感器范围内所有目标的准确位置，但不能感知准确的目标值。所有相邻的无人机在无人机传感器区域内的位置也被假定被探测到。这些信息用于完成任务。无人机应该执行任务分配，以便尽可能多地完成任务。</p> <p><em>1.3 团队理论基础</em>，团队理论处理的问题是有几个决策者对一个随机状态有不同但相关的观察。每个决策者根据自己的观察结果，使用预先确定的策略做出决策。根据所做的决定，团队实现共同的收益或产生共同的成本。目标是使总成本最小化或在预期意义上使总利润最大化。</p> <p>设<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>T</mi><mo>=</mo><mo>{</mo><mn>1</mn><mo separator="true">,</mo><mn>2</mn><mo separator="true">,</mo><mi mathvariant="normal">.</mi><mi mathvariant="normal">.</mi><mi mathvariant="normal">.</mi><mo separator="true">,</mo><mi>N</mi><mo>}</mo></mrow><annotation encoding="application/x-tex">T=\{1,2,...,N\}</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.13889em;">T</span><span class="mrel">=</span><span class="mopen">{</span><span class="mord mathrm">1</span><span class="mpunct">,</span><span class="mord mathrm">2</span><span class="mpunct">,</span><span class="mord mathrm">.</span><span class="mord mathrm">.</span><span class="mord mathrm">.</span><span class="mpunct">,</span><span class="mord mathit" style="margin-right:0.10903em;">N</span><span class="mclose">}</span></span></span></span>表示由<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>N</mi></mrow><annotation encoding="application/x-tex">N</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.68333em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.10903em;">N</span></span></span></span>个决策者组成的团队，<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>S</mi></mrow><annotation encoding="application/x-tex">S</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.68333em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.05764em;">S</span></span></span></span>表示世界或环境的一组交替状态。我们认为集合<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>S</mi></mrow><annotation encoding="application/x-tex">S</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.68333em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.05764em;">S</span></span></span></span>是有限的，也就是说，只有有限个环境的配置。此外，在环境的可能状态集合<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>S</mi></mrow><annotation encoding="application/x-tex">S</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.68333em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.05764em;">S</span></span></span></span>上定义了一个概率函数<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>γ</mi><mo>(</mo><mi>s</mi><mo>)</mo></mrow><annotation encoding="application/x-tex">\gamma (s)</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.05556em;">γ</span><span class="mopen">(</span><span class="mord mathit">s</span><span class="mclose">)</span></span></span></span>。</p> <p>每个决策者接收有关状态<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>s</mi><mo>∈</mo><mi>S</mi></mrow><annotation encoding="application/x-tex">s \in S</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.72243em;vertical-align:-0.0391em;"></span><span class="base textstyle uncramped"><span class="mord mathit">s</span><span class="mrel">∈</span><span class="mord mathit" style="margin-right:0.05764em;">S</span></span></span></span>的信息。第<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>i</mi></mrow><annotation encoding="application/x-tex">i</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.65952em;"></span><span class="strut bottom" style="height:0.65952em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit">i</span></span></span></span>个决策者接收到的信息由下式决定：</p> <p><img src="https://s1.ax1x.com/2020/09/10/wGVJun.png" alt="wGVJun.png"></p> <p>其中<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>η</mi><mi>i</mi></msub></mrow><annotation encoding="application/x-tex">\eta_i</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.625em;vertical-align:-0.19444em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit" style="margin-right:0.03588em;">η</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.03588em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>被称为第<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>i</mi></mrow><annotation encoding="application/x-tex">i</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.65952em;"></span><span class="strut bottom" style="height:0.65952em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit">i</span></span></span></span>个决策者的信息函数。第<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>i</mi></mrow><annotation encoding="application/x-tex">i</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.65952em;"></span><span class="strut bottom" style="height:0.65952em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit">i</span></span></span></span>个决策者可以接收的所有信息的集合由<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>Y</mi><mi>i</mi></msub><mo>=</mo><mo>{</mo><msub><mi>y</mi><mi>i</mi></msub><mo>}</mo></mrow><annotation encoding="application/x-tex">Y_i=\{y_i\}</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit" style="margin-right:0.22222em;">Y</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.22222em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mrel">=</span><span class="mopen">{</span><span class="mord"><span class="mord mathit" style="margin-right:0.03588em;">y</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.03588em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mclose">}</span></span></span></span>给出。集合<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>η</mi><mo>=</mo><mo>{</mo><msub><mi>η</mi><mn>1</mn></msub><mo separator="true">,</mo><msub><mi>η</mi><mn>2</mn></msub><mo separator="true">,</mo><mi mathvariant="normal">.</mi><mi mathvariant="normal">.</mi><mi mathvariant="normal">.</mi><mo separator="true">,</mo><msub><mi>η</mi><mi>N</mi></msub><mo>}</mo></mrow><annotation encoding="application/x-tex">\eta=\{\eta_1, \eta_2, ... , \eta_N\}</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.03588em;">η</span><span class="mrel">=</span><span class="mopen">{</span><span class="mord"><span class="mord mathit" style="margin-right:0.03588em;">η</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.03588em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathrm">1</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mpunct">,</span><span class="mord"><span class="mord mathit" style="margin-right:0.03588em;">η</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.03588em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathrm">2</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mpunct">,</span><span class="mord mathrm">.</span><span class="mord mathrm">.</span><span class="mord mathrm">.</span><span class="mpunct">,</span><span class="mord"><span class="mord mathit" style="margin-right:0.03588em;">η</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.03588em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit" style="margin-right:0.10903em;">N</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mclose">}</span></span></span></span>称为团队的信息结构。</p> <p>根据接收到的信息<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>y</mi><mi>i</mi></msub></mrow><annotation encoding="application/x-tex">y_i</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.625em;vertical-align:-0.19444em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit" style="margin-right:0.03588em;">y</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.03588em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>，第<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>i</mi></mrow><annotation encoding="application/x-tex">i</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.65952em;"></span><span class="strut bottom" style="height:0.65952em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit">i</span></span></span></span>个决策者做出决定<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>x</mi><mi>i</mi></msub></mrow><annotation encoding="application/x-tex">x_i</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.58056em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">x</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>由下式给出：</p> <p><img src="https://s1.ax1x.com/2020/09/10/wGVd4U.png" alt="wGVd4U.png"></p> <p>其中，<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>δ</mi><mi>i</mi></msub></mrow><annotation encoding="application/x-tex">\delta_i</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.69444em;"></span><span class="strut bottom" style="height:0.84444em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit" style="margin-right:0.03785em;">δ</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.03785em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>称为决策函数。设<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>X</mi><mi>i</mi></msub><mo>=</mo><mo>{</mo><msub><mi>x</mi><mi>i</mi></msub><mo>}</mo></mrow><annotation encoding="application/x-tex">X_i=\{x_i\}</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit" style="margin-right:0.07847em;">X</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.07847em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mrel">=</span><span class="mopen">{</span><span class="mord"><span class="mord mathit">x</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mclose">}</span></span></span></span>是第<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>i</mi></mrow><annotation encoding="application/x-tex">i</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.65952em;"></span><span class="strut bottom" style="height:0.65952em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit">i</span></span></span></span>个决策者可以采取的一组可供选择的决策。然后<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>δ</mi><mi>i</mi></msub></mrow><annotation encoding="application/x-tex">\delta_i</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.69444em;"></span><span class="strut bottom" style="height:0.84444em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit" style="margin-right:0.03785em;">δ</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.03785em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>代表映射<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>Y</mi><mi>i</mi></msub><mo>→</mo><msub><mi>X</mi><mi>i</mi></msub></mrow><annotation encoding="application/x-tex">Y_i \to X_i</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit" style="margin-right:0.22222em;">Y</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.22222em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mrel">→</span><span class="mord"><span class="mord mathit" style="margin-right:0.07847em;">X</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.07847em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>。向量<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>δ</mi><mo>=</mo><mo>{</mo><msub><mi>δ</mi><mn>1</mn></msub><mo separator="true">,</mo><msub><mi>δ</mi><mn>2</mn></msub><mo separator="true">,</mo><mi mathvariant="normal">.</mi><mi mathvariant="normal">.</mi><mi mathvariant="normal">.</mi><mo separator="true">,</mo><msub><mi>δ</mi><mi>N</mi></msub><mo>}</mo></mrow><annotation encoding="application/x-tex">\delta=\{\delta_1, \delta_2,..., \delta_N\}</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.03785em;">δ</span><span class="mrel">=</span><span class="mopen">{</span><span class="mord"><span class="mord mathit" style="margin-right:0.03785em;">δ</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.03785em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathrm">1</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mpunct">,</span><span class="mord"><span class="mord mathit" style="margin-right:0.03785em;">δ</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.03785em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathrm">2</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mpunct">,</span><span class="mord mathrm">.</span><span class="mord mathrm">.</span><span class="mord mathrm">.</span><span class="mpunct">,</span><span class="mord"><span class="mord mathit" style="margin-right:0.03785em;">δ</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.03785em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit" style="margin-right:0.10903em;">N</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mclose">}</span></span></span></span>是团队决策函数。根据问题的不同，团队决策<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>x</mi><mo>=</mo><mo>{</mo><msub><mi>x</mi><mn>1</mn></msub><mo separator="true">,</mo><msub><mi>x</mi><mn>2</mn></msub><mo separator="true">,</mo><mi mathvariant="normal">.</mi><mi mathvariant="normal">.</mi><mi mathvariant="normal">.</mi><mo separator="true">,</mo><msub><mi>x</mi><mi>N</mi></msub><mo>}</mo></mrow><annotation encoding="application/x-tex">x=\{x_1,x_2,...,x_N\}</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mord mathit">x</span><span class="mrel">=</span><span class="mopen">{</span><span class="mord"><span class="mord mathit">x</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathrm">1</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mpunct">,</span><span class="mord"><span class="mord mathit">x</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathrm">2</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mpunct">,</span><span class="mord mathrm">.</span><span class="mord mathrm">.</span><span class="mord mathrm">.</span><span class="mpunct">,</span><span class="mord"><span class="mord mathit">x</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit" style="margin-right:0.10903em;">N</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mclose">}</span></span></span></span>可以被约束以满足某些条件，即<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>x</mi></mrow><annotation encoding="application/x-tex">x</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.43056em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit">x</span></span></span></span>可能被迫保持在某个闭凸集<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>k</mi><mo>(</mo><mi>s</mi><mo>)</mo><mo>∈</mo><msup><mrow><mi mathvariant="double-struck">R</mi></mrow><mi>N</mi></msup></mrow><annotation encoding="application/x-tex">k(s) \in \mathbb{R}^N</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.8413309999999999em;"></span><span class="strut bottom" style="height:1.0913309999999998em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.03148em;">k</span><span class="mopen">(</span><span class="mord mathit">s</span><span class="mclose">)</span><span class="mrel">∈</span><span><span class="mord textstyle uncramped"><span class="mord mathbb">R</span></span><span class="vlist"><span style="top:-0.363em;margin-right:0.05em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle uncramped"><span class="mord mathit" style="margin-right:0.10903em;">N</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>内。</p> <p>团队的结果由状态<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>s</mi></mrow><annotation encoding="application/x-tex">s</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.43056em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit">s</span></span></span></span>和团队决策<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>x</mi></mrow><annotation encoding="application/x-tex">x</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.43056em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit">x</span></span></span></span>决定，由下式给出：</p> <p><img src="https://s1.ax1x.com/2020/09/10/wGV7DI.png" alt="wGV7DI.png"></p> <p>其中，<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>ω</mi><mo>(</mo><mi>s</mi><mo separator="true">,</mo><mi>x</mi><mo>)</mo></mrow><annotation encoding="application/x-tex">\omega(s,x)</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.03588em;">ω</span><span class="mopen">(</span><span class="mord mathit">s</span><span class="mpunct">,</span><span class="mord mathit">x</span><span class="mclose">)</span></span></span></span>称为支付函数。由于环境的状态是一个随机变量，具有给定的概率分布，我们找到了期望收益<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>E</mi><mo>[</mo><mi>ω</mi><mo>(</mo><mi>s</mi><mo separator="true">,</mo><mi>x</mi><mo>)</mo><mo>]</mo></mrow><annotation encoding="application/x-tex">E[\omega (s,x)]</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.05764em;">E</span><span class="mopen">[</span><span class="mord mathit" style="margin-right:0.03588em;">ω</span><span class="mopen">(</span><span class="mord mathit">s</span><span class="mpunct">,</span><span class="mord mathit">x</span><span class="mclose">)</span><span class="mclose">]</span></span></span></span>。因此，决策者的目标是：</p> <p><img src="https://s1.ax1x.com/2020/09/10/wGVLUf.png" alt="wGVLUf.png"></p> <p>如果收益函数是线性的，<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>ω</mi><mo>(</mo><mi>s</mi><mo separator="true">,</mo><mi>x</mi><mo>)</mo></mrow><annotation encoding="application/x-tex">\omega(s,x)</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.03588em;">ω</span><span class="mopen">(</span><span class="mord mathit">s</span><span class="mpunct">,</span><span class="mord mathit">x</span><span class="mclose">)</span></span></span></span>可以写成<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>ω</mi><mo>=</mo><msub><mo>∑</mo><mi>i</mi></msub><mrow><msub><mi>C</mi><mi>i</mi></msub><msub><mi>x</mi><mi>i</mi></msub></mrow></mrow><annotation encoding="application/x-tex">\omega=\sum_i{C_ix_i}</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1.0500099999999999em;vertical-align:-0.30001em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.03588em;">ω</span><span class="mrel">=</span><span class="mop"><span class="op-symbol small-op mop" style="top:-0.0000050000000000050004em;">∑</span><span class="vlist"><span style="top:0.30001em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mord textstyle uncramped"><span class="mord"><span class="mord mathit" style="margin-right:0.07153em;">C</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.07153em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mord"><span class="mord mathit">x</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span></span>,其中<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>C</mi><mi>i</mi></msub></mrow><annotation encoding="application/x-tex">C_i</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit" style="margin-right:0.07153em;">C</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.07153em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>是状态的函数，它是一个随机变量。然后，目标函数如下：</p> <p><img src="https://s1.ax1x.com/2020/09/10/wGVv8g.png" alt="wGVv8g.png"></p> <p><strong>第2节 问题表述</strong>，考虑到第一节中描述的场景，让<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>N</mi></mrow><annotation encoding="application/x-tex">N</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.68333em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.10903em;">N</span></span></span></span>架无人机部署用于搜索和攻击行动。无人机的目标是在其续航时间内攻击和摧毁最大数量的目标。每一个无人机都是一个自主的决策者。我们假设在搜索空间中有<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>M</mi></mrow><annotation encoding="application/x-tex">M</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.68333em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.10903em;">M</span></span></span></span>个目标，它们的确切位置或数量不为无人机所知。环境状态<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>S</mi></mrow><annotation encoding="application/x-tex">S</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.68333em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.05764em;">S</span></span></span></span>包括无人机位置<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mo>(</mo><msub><mi>q</mi><mi>x</mi></msub><mo separator="true">,</mo><msub><mi>q</mi><mi>y</mi></msub><mo>)</mo></mrow><annotation encoding="application/x-tex">(q_x,q_y)</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1.036108em;vertical-align:-0.286108em;"></span><span class="base textstyle uncramped"><span class="mopen">(</span><span class="mord"><span class="mord mathit" style="margin-right:0.03588em;">q</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.03588em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">x</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mpunct">,</span><span class="mord"><span class="mord mathit" style="margin-right:0.03588em;">q</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.03588em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit" style="margin-right:0.03588em;">y</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mclose">)</span></span></span></span>，目标位置<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mo>(</mo><msub><mi>t</mi><mi>x</mi></msub><mo separator="true">,</mo><msub><mi>t</mi><mi>y</mi></msub><mo>)</mo></mrow><annotation encoding="application/x-tex">(t_x,t_y)</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1.036108em;vertical-align:-0.286108em;"></span><span class="base textstyle uncramped"><span class="mopen">(</span><span class="mord"><span class="mord mathit">t</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">x</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mpunct">,</span><span class="mord"><span class="mord mathit">t</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit" style="margin-right:0.03588em;">y</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mclose">)</span></span></span></span>和目标值<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>V</mi><mi>j</mi></msub><mo separator="true">,</mo><mi>j</mi><mo>=</mo><mn>1</mn><mo separator="true">,</mo><mi mathvariant="normal">.</mi><mi mathvariant="normal">.</mi><mi mathvariant="normal">.</mi><mo separator="true">,</mo><mi>M</mi></mrow><annotation encoding="application/x-tex">V_j, j=1,...,M</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.969438em;vertical-align:-0.286108em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit" style="margin-right:0.22222em;">V</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.22222em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit" style="margin-right:0.05724em;">j</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mpunct">,</span><span class="mord mathit" style="margin-right:0.05724em;">j</span><span class="mrel">=</span><span class="mord mathrm">1</span><span class="mpunct">,</span><span class="mord mathrm">.</span><span class="mord mathrm">.</span><span class="mord mathrm">.</span><span class="mpunct">,</span><span class="mord mathit" style="margin-right:0.10903em;">M</span></span></span></span>。无人机可以感知目标的存在并用概率<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>p</mi><mo>(</mo><msub><mi>d</mi><mi>j</mi></msub><mo>)</mo></mrow><annotation encoding="application/x-tex">p(d_j)</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1.036108em;vertical-align:-0.286108em;"></span><span class="base textstyle uncramped"><span class="mord mathit">p</span><span class="mopen">(</span><span class="mord"><span class="mord mathit">d</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit" style="margin-right:0.05724em;">j</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mclose">)</span></span></span></span>估计其值，这取决于无人机与目标<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>T</mi><mi>j</mi></msub></mrow><annotation encoding="application/x-tex">T_j</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.969438em;vertical-align:-0.286108em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit" style="margin-right:0.13889em;">T</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.13889em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit" style="margin-right:0.05724em;">j</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>之间的距离<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>d</mi><mi>j</mi></msub></mrow><annotation encoding="application/x-tex">d_j</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.69444em;"></span><span class="strut bottom" style="height:0.980548em;vertical-align:-0.286108em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">d</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit" style="margin-right:0.05724em;">j</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>。</p> <p>假设在时间步<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>t</mi><mi>s</mi></msub></mrow><annotation encoding="application/x-tex">t_s</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.61508em;"></span><span class="strut bottom" style="height:0.76508em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">t</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">s</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>，无人机<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>i</mi></mrow><annotation encoding="application/x-tex">i</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.65952em;"></span><span class="strut bottom" style="height:0.65952em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit">i</span></span></span></span>可以感应到其传感器范围内目标数<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>m</mi><mi>i</mi></msub></mrow><annotation encoding="application/x-tex">m_i</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.58056em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">m</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>和无人机数量<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>n</mi><mi>i</mi></msub></mrow><annotation encoding="application/x-tex">n_i</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.58056em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">n</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>。第<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>i</mi></mrow><annotation encoding="application/x-tex">i</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.65952em;"></span><span class="strut bottom" style="height:0.65952em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit">i</span></span></span></span>架无人机计算<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>m</mi><mi>i</mi></msub></mrow><annotation encoding="application/x-tex">m_i</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.58056em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">m</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>目标值的概率<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>p</mi><mo>(</mo><msub><mi>d</mi><mi>j</mi></msub><mo>)</mo><mo separator="true">,</mo><mi>j</mi><mo>=</mo><mn>1</mn><mo separator="true">,</mo><mi mathvariant="normal">.</mi><mi mathvariant="normal">.</mi><mi mathvariant="normal">.</mi><mo separator="true">,</mo><msub><mi>m</mi><mi>i</mi></msub></mrow><annotation encoding="application/x-tex">p(d_j), j=1,...,m_i</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1.036108em;vertical-align:-0.286108em;"></span><span class="base textstyle uncramped"><span class="mord mathit">p</span><span class="mopen">(</span><span class="mord"><span class="mord mathit">d</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit" style="margin-right:0.05724em;">j</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mclose">)</span><span class="mpunct">,</span><span class="mord mathit" style="margin-right:0.05724em;">j</span><span class="mrel">=</span><span class="mord mathrm">1</span><span class="mpunct">,</span><span class="mord mathrm">.</span><span class="mord mathrm">.</span><span class="mord mathrm">.</span><span class="mpunct">,</span><span class="mord"><span class="mord mathit">m</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>。无人机必须利用这些信息来决定它的行动。第<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>i</mi></mrow><annotation encoding="application/x-tex">i</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.65952em;"></span><span class="strut bottom" style="height:0.65952em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit">i</span></span></span></span>个无人机所采取的决定是由决策向量<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>x</mi><mi>i</mi></msub><mo>=</mo><mo>[</mo><msub><mi>x</mi><mrow><mi>i</mi><mo separator="true">,</mo><mn>1</mn></mrow></msub><mo separator="true">,</mo><msub><mi>x</mi><mrow><mi>i</mi><mo separator="true">,</mo><mn>2</mn></mrow></msub><mo separator="true">,</mo><mi mathvariant="normal">.</mi><mi mathvariant="normal">.</mi><mi mathvariant="normal">.</mi><mo separator="true">,</mo><msub><mi>x</mi><mrow><mi>i</mi><mo separator="true">,</mo><msub><mi>m</mi><mi>i</mi></msub></mrow></msub><mo>]</mo></mrow><annotation encoding="application/x-tex">x_i= [x_{i,1},x_{i,2},...,x_{i,m_i}]</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1.036108em;vertical-align:-0.286108em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">x</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mrel">=</span><span class="mopen">[</span><span class="mord"><span class="mord mathit">x</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord mathit">i</span><span class="mpunct">,</span><span class="mord mathrm">1</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mpunct">,</span><span class="mord"><span class="mord mathit">x</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord mathit">i</span><span class="mpunct">,</span><span class="mord mathrm">2</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mpunct">,</span><span class="mord mathrm">.</span><span class="mord mathrm">.</span><span class="mord mathrm">.</span><span class="mpunct">,</span><span class="mord"><span class="mord mathit">x</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord mathit">i</span><span class="mpunct">,</span><span class="mord"><span class="mord mathit">m</span><span class="vlist"><span style="top:0.15em;margin-right:0.07142857142857144em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-scriptstyle scriptscriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mclose">]</span></span></span></span>给出，其中<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>x</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub><mo>∈</mo><mo>{</mo><mn>0</mn><mo separator="true">,</mo><mn>1</mn><mo>}</mo></mrow><annotation encoding="application/x-tex">x_{ij} \in \{0, 1\}</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1.036108em;vertical-align:-0.286108em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">x</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord mathit">i</span><span class="mord mathit" style="margin-right:0.05724em;">j</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mrel">∈</span><span class="mopen">{</span><span class="mord mathrm">0</span><span class="mpunct">,</span><span class="mord mathrm">1</span><span class="mclose">}</span></span></span></span>表示第<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>i</mi></mrow><annotation encoding="application/x-tex">i</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.65952em;"></span><span class="strut bottom" style="height:0.65952em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit">i</span></span></span></span>架无人机是否执行任务<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>j</mi></mrow><annotation encoding="application/x-tex">j</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.65952em;"></span><span class="strut bottom" style="height:0.85396em;vertical-align:-0.19444em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.05724em;">j</span></span></span></span>。</p> <p>第<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>i</mi></mrow><annotation encoding="application/x-tex">i</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.65952em;"></span><span class="strut bottom" style="height:0.65952em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit">i</span></span></span></span>架无人机的决策基于执行任务<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>j</mi></mrow><annotation encoding="application/x-tex">j</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.65952em;"></span><span class="strut bottom" style="height:0.85396em;vertical-align:-0.19444em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.05724em;">j</span></span></span></span>获得的效益<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>C</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub></mrow><annotation encoding="application/x-tex">C_{ij}</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.969438em;vertical-align:-0.286108em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit" style="margin-right:0.07153em;">C</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.07153em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord mathit">i</span><span class="mord mathit" style="margin-right:0.05724em;">j</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>。第<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>i</mi></mrow><annotation encoding="application/x-tex">i</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.65952em;"></span><span class="strut bottom" style="height:0.65952em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit">i</span></span></span></span>架无人机仅使用其传感器范围内相邻无人机的信息。因此，团队的目标是最大化:</p> <p><img src="https://s1.ax1x.com/2020/09/10/wGZk5T.png" alt="wGZk5T.png"></p> <p>其中，任务<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>j</mi><mo>=</mo><mn>1</mn><mo separator="true">,</mo><mn>2</mn><mo separator="true">,</mo><mi mathvariant="normal">.</mi><mi mathvariant="normal">.</mi><mi mathvariant="normal">.</mi><mo separator="true">,</mo><msub><mi>m</mi><mi>i</mi></msub></mrow><annotation encoding="application/x-tex">j=1,2,...,m_i</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.65952em;"></span><span class="strut bottom" style="height:0.85396em;vertical-align:-0.19444em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.05724em;">j</span><span class="mrel">=</span><span class="mord mathrm">1</span><span class="mpunct">,</span><span class="mord mathrm">2</span><span class="mpunct">,</span><span class="mord mathrm">.</span><span class="mord mathrm">.</span><span class="mord mathrm">.</span><span class="mpunct">,</span><span class="mord"><span class="mord mathit">m</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>表示无人机<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>i</mi></mrow><annotation encoding="application/x-tex">i</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.65952em;"></span><span class="strut bottom" style="height:0.65952em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit">i</span></span></span></span>是否攻击目标<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>T</mi><mi>j</mi></msub></mrow><annotation encoding="application/x-tex">T_j</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.969438em;vertical-align:-0.286108em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit" style="margin-right:0.13889em;">T</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.13889em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit" style="margin-right:0.05724em;">j</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>，<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>j</mi><mo>=</mo><mo>(</mo><msub><mi>m</mi><mi>i</mi></msub><mo>+</mo><mn>1</mn><mo>)</mo></mrow><annotation encoding="application/x-tex">j=(m_i+1)</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.05724em;">j</span><span class="mrel">=</span><span class="mopen">(</span><span class="mord"><span class="mord mathit">m</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mbin">+</span><span class="mord mathrm">1</span><span class="mclose">)</span></span></span></span>为搜索任务。目标函数<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>ω</mi></mrow><annotation encoding="application/x-tex">\omega</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.43056em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.03588em;">ω</span></span></span></span>和约束是线性的。因此，我们可以使用线性规划算法来解决上述优化问题。</p> <p>每台无人机所处的地理位置不同，所感知的环境也可能不同。因此，每个无人机的<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>ω</mi></mrow><annotation encoding="application/x-tex">\omega</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.43056em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.03588em;">ω</span></span></span></span>也不同。而且，每一个无人机在同一时刻只能执行一个任务，因此</p> <p><img src="https://s1.ax1x.com/2020/09/10/wGZKq1.png" alt="wGZKq1.png"></p> <p>为了使任务有效，必须在一个时间步内只将一个无人机分配给一个目标。所以，我们还有以下条件，</p> <p><img src="https://s1.ax1x.com/2020/09/10/wGZJRe.png" alt="wGZJRe.png"></p> <p>但是，在上述限制条件下，该解决方案仍可能变得不可行，因为可能出现目标数量大于无人机数量的情况，因此可能无法分配所有目标。因此，我们将上述约束放宽到</p> <p><img src="https://s1.ax1x.com/2020/09/10/wGZfZq.png" alt="wGZfZq.png"></p> <p>因此，该问题可以被定义为一个LP问题，每个无人机都要求解自己的LP。优化问题改写为：</p> <p><img src="https://s1.ax1x.com/2020/09/10/wGZbQJ.png" alt="wGZbQJ.png"></p> <p>上面的LP问题没有使用任何团队理论概念。现在，我们用团队理论来描述LP公式。</p> <p><strong>第3节 团队理论公式</strong>，第二节中定义的问题假设优化问题是全局解决的。然而，在我们考虑的场景中，无人机没有全局信息。每一个无人机只需提供局部信息就可以解决优化问题。</p> <p>第i架无人机计算不同任务的收益定义如下：</p> <p><em>搜索任务</em>：</p> <p><img src="https://s1.ax1x.com/2020/09/10/wGeNfU.png" alt="wGeNfU.png"></p> <p><em>攻击目标<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>j</mi></mrow><annotation encoding="application/x-tex">j</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.65952em;"></span><span class="strut bottom" style="height:0.85396em;vertical-align:-0.19444em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.05724em;">j</span></span></span></span></em>：</p> <p><img src="https://s1.ax1x.com/2020/09/10/wGehXd.png" alt="wGehXd.png"></p> <p>式中，<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>V</mi><mrow><msub><mi>T</mi><mi>j</mi></msub></mrow></msub></mrow><annotation encoding="application/x-tex">V_{T_j}</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:1.03555em;vertical-align:-0.35222em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit" style="margin-right:0.22222em;">V</span><span class="vlist"><span style="top:0.14999999999999997em;margin-right:0.05em;margin-left:-0.22222em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord"><span class="mord mathit" style="margin-right:0.13889em;">T</span><span class="vlist"><span style="top:0.15000000000000002em;margin-right:0.07142857142857144em;margin-left:-0.13889em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-scriptstyle scriptscriptstyle cramped"><span class="mord mathit" style="margin-right:0.05724em;">j</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>=目标<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>T</mi><mi>j</mi></msub></mrow><annotation encoding="application/x-tex">T_j</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.969438em;vertical-align:-0.286108em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit" style="margin-right:0.13889em;">T</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.13889em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit" style="margin-right:0.05724em;">j</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>价值，<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>w</mi><mi>r</mi></msub></mrow><annotation encoding="application/x-tex">w_r</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.58056em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit" style="margin-right:0.02691em;">w</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.02691em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit" style="margin-right:0.02778em;">r</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>=搜索任务对攻击目标任务的权重，<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>S</mi><mi>t</mi></msub></mrow><annotation encoding="application/x-tex">S_t</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit" style="margin-right:0.05764em;">S</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.05764em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">t</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>=（到达目标<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>T</mi><mi>j</mi></msub></mrow><annotation encoding="application/x-tex">T_j</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.969438em;vertical-align:-0.286108em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit" style="margin-right:0.13889em;">T</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.13889em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit" style="margin-right:0.05724em;">j</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>的用时)/(总飞行时间)。然而，第<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>i</mi></mrow><annotation encoding="application/x-tex">i</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.65952em;"></span><span class="strut bottom" style="height:0.65952em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit">i</span></span></span></span>架无人机以一定的概率知道目标<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>j</mi></mrow><annotation encoding="application/x-tex">j</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.65952em;"></span><span class="strut bottom" style="height:0.85396em;vertical-align:-0.19444em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.05724em;">j</span></span></span></span>的值。假设概率分布是线性的，如图1所示。设<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>p</mi><mi>r</mi></msub><mo>(</mo><msub><mi>d</mi><mi>j</mi></msub><mo>)</mo></mrow><annotation encoding="application/x-tex">p_r(d_j)</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1.036108em;vertical-align:-0.286108em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">p</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit" style="margin-right:0.02778em;">r</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mopen">(</span><span class="mord"><span class="mord mathit">d</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit" style="margin-right:0.05724em;">j</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mclose">)</span></span></span></span>定义目标<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>j</mi></mrow><annotation encoding="application/x-tex">j</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.65952em;"></span><span class="strut bottom" style="height:0.85396em;vertical-align:-0.19444em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.05724em;">j</span></span></span></span>在距离<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>d</mi></mrow><annotation encoding="application/x-tex">d</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.69444em;"></span><span class="strut bottom" style="height:0.69444em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit">d</span></span></span></span>处具有<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>r</mi></mrow><annotation encoding="application/x-tex">r</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.43056em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.02778em;">r</span></span></span></span>值的概率。这里，<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>r</mi><mo>=</mo><mo>{</mo><mn>0</mn><mo separator="true">,</mo><mn>0</mn><mi mathvariant="normal">.</mi><mn>5</mn><mo separator="true">,</mo><mn>1</mn><mo>}</mo></mrow><annotation encoding="application/x-tex">r=\{0,0.5,1\}</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.02778em;">r</span><span class="mrel">=</span><span class="mopen">{</span><span class="mord mathrm">0</span><span class="mpunct">,</span><span class="mord mathrm">0</span><span class="mord mathrm">.</span><span class="mord mathrm">5</span><span class="mpunct">,</span><span class="mord mathrm">1</span><span class="mclose">}</span></span></span></span>，其中当<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>r</mi><mo>=</mo><mn>1</mn></mrow><annotation encoding="application/x-tex">r=1</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.64444em;"></span><span class="strut bottom" style="height:0.64444em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.02778em;">r</span><span class="mrel">=</span><span class="mord mathrm">1</span></span></span></span>时，目标不受攻击，当<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>r</mi><mo>=</mo><mn>0</mn><mi mathvariant="normal">.</mi><mn>5</mn></mrow><annotation encoding="application/x-tex">r=0.5</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.64444em;"></span><span class="strut bottom" style="height:0.64444em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.02778em;">r</span><span class="mrel">=</span><span class="mord mathrm">0</span><span class="mord mathrm">.</span><span class="mord mathrm">5</span></span></span></span>时，目标被部分摧毁，当<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>r</mi><mo>=</mo><mn>0</mn></mrow><annotation encoding="application/x-tex">r=0</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.64444em;"></span><span class="strut bottom" style="height:0.64444em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.02778em;">r</span><span class="mrel">=</span><span class="mord mathrm">0</span></span></span></span>时，目标被完全摧毁。因此，<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>C</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub></mrow><annotation encoding="application/x-tex">C_{ij}</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.969438em;vertical-align:-0.286108em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit" style="margin-right:0.07153em;">C</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.07153em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord mathit">i</span><span class="mord mathit" style="margin-right:0.05724em;">j</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>是概率<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>p</mi><mo>(</mo><msub><mi>d</mi><mi>j</mi></msub><mo>)</mo><mo>=</mo><mo>{</mo><msub><mi>p</mi><mi>r</mi></msub><mo>(</mo><msub><mi>d</mi><mi>j</mi></msub><mo>)</mo><mo>}</mo></mrow><annotation encoding="application/x-tex">p(d_j)=\{p_r(d_j)\}</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1.036108em;vertical-align:-0.286108em;"></span><span class="base textstyle uncramped"><span class="mord mathit">p</span><span class="mopen">(</span><span class="mord"><span class="mord mathit">d</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit" style="margin-right:0.05724em;">j</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mclose">)</span><span class="mrel">=</span><span class="mopen">{</span><span class="mord"><span class="mord mathit">p</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit" style="margin-right:0.02778em;">r</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mopen">(</span><span class="mord"><span class="mord mathit">d</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit" style="margin-right:0.05724em;">j</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mclose">)</span><span class="mclose">}</span></span></span></span>的随机变量。</p> <p><img src="https://s1.ax1x.com/2020/09/10/wJdZIf.png" alt="wJdZIf.png"></p> <p><em>推测/战损评估（BDA）</em>：由于对目标的推测是在每一个时间步进行的，并且反映在目标的价值上，所以我们没有为推测任务附加单独的利益。</p> <p>每个无人机还估计其相邻的无人机（如第<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>k</mi></mrow><annotation encoding="application/x-tex">k</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.69444em;"></span><span class="strut bottom" style="height:0.69444em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.03148em;">k</span></span></span></span>个无人机）将从其可以执行的不同任务中获得的好处如下：</p> <ul><li>搜索任务：搜索任务与上述定义相似，因此所有无人机的搜索值相同。</li> <li>攻击目标<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>j</mi></mrow><annotation encoding="application/x-tex">j</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.65952em;"></span><span class="strut bottom" style="height:0.85396em;vertical-align:-0.19444em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.05724em;">j</span></span></span></span>：如果目标<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>j</mi></mrow><annotation encoding="application/x-tex">j</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.65952em;"></span><span class="strut bottom" style="height:0.85396em;vertical-align:-0.19444em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.05724em;">j</span></span></span></span>在第<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>k</mi></mrow><annotation encoding="application/x-tex">k</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.69444em;"></span><span class="strut bottom" style="height:0.69444em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.03148em;">k</span></span></span></span>架无人机的传感器半径内，则：</li></ul> <p><img src="https://s1.ax1x.com/2020/09/10/wGmmH1.png" alt="wgmh1.png"></p> <p>如果目标<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>j</mi></mrow><annotation encoding="application/x-tex">j</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.65952em;"></span><span class="strut bottom" style="height:0.85396em;vertical-align:-0.19444em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.05724em;">j</span></span></span></span>不在第<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>k</mi></mrow><annotation encoding="application/x-tex">k</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.69444em;"></span><span class="strut bottom" style="height:0.69444em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.03148em;">k</span></span></span></span>架无人机的传感器范围内，则<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>C</mi><mrow><mi>k</mi><mi>j</mi></mrow></msub><mo>=</mo><mn>0</mn></mrow><annotation encoding="application/x-tex">C_{kj}=0</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.969438em;vertical-align:-0.286108em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit" style="margin-right:0.07153em;">C</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.07153em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord mathit" style="margin-right:0.03148em;">k</span><span class="mord mathit" style="margin-right:0.05724em;">j</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mrel">=</span><span class="mord mathrm">0</span></span></span></span>。在这里，我们假设所有的无人机具有相同的传感器范围，因此第<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>i</mi></mrow><annotation encoding="application/x-tex">i</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.65952em;"></span><span class="strut bottom" style="height:0.65952em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit">i</span></span></span></span>架无人机可以估计第<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>j</mi></mrow><annotation encoding="application/x-tex">j</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.65952em;"></span><span class="strut bottom" style="height:0.85396em;vertical-align:-0.19444em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.05724em;">j</span></span></span></span>个目标是否在第<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>k</mi></mrow><annotation encoding="application/x-tex">k</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.69444em;"></span><span class="strut bottom" style="height:0.69444em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.03148em;">k</span></span></span></span>架无人机的传感器范围内。</p> <ul><li>攻击虚拟目标：虚拟目标的概念用于估计第<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>i</mi></mrow><annotation encoding="application/x-tex">i</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.65952em;"></span><span class="strut bottom" style="height:0.65952em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit">i</span></span></span></span>架无人机传感器范围以外的环境（见图2)。</li></ul> <p><img src="https://s1.ax1x.com/2020/09/10/wJd8Zq.png" alt="wJd8Zq.png"></p> <p>第<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>i</mi></mrow><annotation encoding="application/x-tex">i</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.65952em;"></span><span class="strut bottom" style="height:0.65952em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit">i</span></span></span></span>架无人机无法看到第<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>j</mi></mrow><annotation encoding="application/x-tex">j</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.65952em;"></span><span class="strut bottom" style="height:0.85396em;vertical-align:-0.19444em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.05724em;">j</span></span></span></span>架无人机可以看到的阴影区域。根据阴影区域内目标的数量，第<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>j</mi></mrow><annotation encoding="application/x-tex">j</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.65952em;"></span><span class="strut bottom" style="height:0.85396em;vertical-align:-0.19444em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.05724em;">j</span></span></span></span>架无人机的行为将有所不同。为了估计可能存在的目标数量，我们假设目标是均匀分布的。我们考虑了所有这些目标的综合效应，我们假设这些目标位于一个点<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>p</mi></mrow><annotation encoding="application/x-tex">p</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.625em;vertical-align:-0.19444em;"></span><span class="base textstyle uncramped"><span class="mord mathit">p</span></span></span></span>,与点<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mo>(</mo><mi>a</mi><mo separator="true">,</mo><mi>b</mi><mo>)</mo></mrow><annotation encoding="application/x-tex">(a,b)</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mopen">(</span><span class="mord mathit">a</span><span class="mpunct">,</span><span class="mord mathit">b</span><span class="mclose">)</span></span></span></span>等距。这种组合目标被称为第<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>k</mi></mrow><annotation encoding="application/x-tex">k</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.69444em;"></span><span class="strut bottom" style="height:0.69444em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.03148em;">k</span></span></span></span>架无人机的虚拟目标。第<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>k</mi></mrow><annotation encoding="application/x-tex">k</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.69444em;"></span><span class="strut bottom" style="height:0.69444em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.03148em;">k</span></span></span></span>架无人机攻击这个虚拟目标的好处是：</p> <p><img src="https://s1.ax1x.com/2020/09/10/wGml9O.png" alt="wGml9O.png"></p> <p>其中，<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>n</mi><mi>k</mi></msub></mrow><annotation encoding="application/x-tex">n_k</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.58056em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">n</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit" style="margin-right:0.03148em;">k</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>是阴影区域中可以出现的目标数量。因此，<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>n</mi><mi>k</mi></msub><mo>=</mo><msub><mi>n</mi><mi>i</mi></msub></mrow><annotation encoding="application/x-tex">n_k=n_i</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.58056em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">n</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit" style="margin-right:0.03148em;">k</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mrel">=</span><span class="mord"><span class="mord mathit">n</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>（阴影区面积）<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi mathvariant="normal">/</mi><mi>π</mi><mo>(</mo><msub><mi>s</mi><mi>r</mi></msub><msup><mo>)</mo><mn>2</mn></msup></mrow><annotation encoding="application/x-tex">/\pi (s_r)^2</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.8141079999999999em;"></span><span class="strut bottom" style="height:1.064108em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mord mathrm">/</span><span class="mord mathit" style="margin-right:0.03588em;">π</span><span class="mopen">(</span><span class="mord"><span class="mord mathit">s</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit" style="margin-right:0.02778em;">r</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mclose"><span class="mclose">)</span><span class="vlist"><span style="top:-0.363em;margin-right:0.05em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle uncramped"><span class="mord mathrm">2</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>，<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>C</mi><mrow><mi>l</mi><mover accent="true"><mrow><mi>k</mi></mrow><mo>^</mo></mover></mrow></msub><mo>=</mo><mn>0</mn><mo separator="true">,</mo><mi mathvariant="normal">∀</mi><mi>l</mi><mo>=</mo><mn>1</mn><mo separator="true">,</mo><mi mathvariant="normal">.</mi><mi mathvariant="normal">.</mi><mi mathvariant="normal">.</mi><mo separator="true">,</mo><msub><mi>n</mi><mi>i</mi></msub><mo separator="true">,</mo><mi>l</mi><mo>≠</mo><mi>k</mi></mrow><annotation encoding="application/x-tex">C_{l\hat{k}}=0,\forall l=1,...,n_i, l \ne k</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.716em;"></span><span class="strut bottom" style="height:1.0417159999999999em;vertical-align:-0.3257159999999999em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit" style="margin-right:0.07153em;">C</span><span class="vlist"><span style="top:0.3257159999999999em;margin-right:0.05em;margin-left:-0.07153em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord mathit" style="margin-right:0.01968em;">l</span><span class="mord accent"><span class="vlist"><span style="top:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="mord scriptstyle cramped"><span class="mord mathit" style="margin-right:0.03148em;">k</span></span></span><span style="top:-0.26343999999999995em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="accent-body"><span>^</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mrel">=</span><span class="mord mathrm">0</span><span class="mpunct">,</span><span class="mord mathrm">∀</span><span class="mord mathit" style="margin-right:0.01968em;">l</span><span class="mrel">=</span><span class="mord mathrm">1</span><span class="mpunct">,</span><span class="mord mathrm">.</span><span class="mord mathrm">.</span><span class="mord mathrm">.</span><span class="mpunct">,</span><span class="mord"><span class="mord mathit">n</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mpunct">,</span><span class="mord mathit" style="margin-right:0.01968em;">l</span><span class="mrel">≠</span><span class="mord mathit" style="margin-right:0.03148em;">k</span></span></span></span>，<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>s</mi><mi>r</mi></msub></mrow><annotation encoding="application/x-tex">s_r</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.58056em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">s</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit" style="margin-right:0.02778em;">r</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>是传感器范围。也就是说，对于任何其他无人机，攻击第<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>k</mi></mrow><annotation encoding="application/x-tex">k</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.69444em;"></span><span class="strut bottom" style="height:0.69444em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.03148em;">k</span></span></span></span>架无人机的虚拟目标<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mover accent="true"><mrow><mi>k</mi></mrow><mo>^</mo></mover></mrow><annotation encoding="application/x-tex">\hat{k}</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.9578799999999998em;"></span><span class="strut bottom" style="height:0.9578799999999998em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord accent"><span class="vlist"><span style="top:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="mord textstyle cramped"><span class="mord mathit" style="margin-right:0.03148em;">k</span></span></span><span style="top:-0.26343999999999995em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="accent-body"><span>^</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>的好处是零。</p> <p>由于<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>C</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub></mrow><annotation encoding="application/x-tex">C_{ij}</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.969438em;vertical-align:-0.286108em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit" style="margin-right:0.07153em;">C</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.07153em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord mathit">i</span><span class="mord mathit" style="margin-right:0.05724em;">j</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>是随机变量，第<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>i</mi></mrow><annotation encoding="application/x-tex">i</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.65952em;"></span><span class="strut bottom" style="height:0.65952em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit">i</span></span></span></span>架无人机将使预期收益最大化。期望值是根据状态的联合概率<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>P</mi><mi>i</mi></msub><mo>(</mo><mi>s</mi><mo>)</mo></mrow><annotation encoding="application/x-tex">P_i(s)</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit" style="margin-right:0.13889em;">P</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.13889em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mopen">(</span><span class="mord mathit">s</span><span class="mclose">)</span></span></span></span>计算的。在这里，我们假设目标值是独立事件，因此</p> <p><img src="https://s1.ax1x.com/2020/09/10/wGmYDA.png" alt="wGmYDA.png"></p> <p>目标是在第二节定义的约束条件下使预期收益<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>E</mi><mo>(</mo><mi>ω</mi><mo>)</mo></mrow><annotation encoding="application/x-tex">E(\omega)</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.05764em;">E</span><span class="mopen">(</span><span class="mord mathit" style="margin-right:0.03588em;">ω</span><span class="mclose">)</span></span></span></span>最大化，因此每个无人机解决以下线性规划问题：</p> <p><img src="https://s1.ax1x.com/2020/09/10/wJdIeI.png" alt="wJdIeI.png"></p> <p>其中<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>j</mi><mo>=</mo><msub><mi>m</mi><mi>i</mi></msub><mo>+</mo><mn>1</mn></mrow><annotation encoding="application/x-tex">j=m_i+1</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.65952em;"></span><span class="strut bottom" style="height:0.85396em;vertical-align:-0.19444em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.05724em;">j</span><span class="mrel">=</span><span class="mord"><span class="mord mathit">m</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mbin">+</span><span class="mord mathrm">1</span></span></span></span>是搜索任务，<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mover accent="true"><mrow><mi>j</mi></mrow><mo>^</mo></mover><mo>=</mo><mi>j</mi><mo>=</mo><mo>(</mo><msub><mi>m</mi><mi>i</mi></msub><mo>+</mo><mn>1</mn><mo>)</mo><mo>+</mo><mn>1</mn><mo separator="true">,</mo><mi mathvariant="normal">.</mi><mi mathvariant="normal">.</mi><mi mathvariant="normal">.</mi><mo separator="true">,</mo><mo>(</mo><msub><mi>m</mi><mi>i</mi></msub><mo>+</mo><mn>1</mn><mo>)</mo><mo>+</mo><mo>(</mo><msub><mi>n</mi><mi>i</mi></msub><mo>−</mo><mn>1</mn><mo>)</mo></mrow><annotation encoding="application/x-tex">\hat{j}=j=(m_i+1)+1,...,(m_i+1)+(n_i-1)</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.92296em;"></span><span class="strut bottom" style="height:1.17296em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mord accent"><span class="vlist"><span style="top:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="mord textstyle cramped"><span class="mord mathit" style="margin-right:0.05724em;">j</span></span></span><span style="top:-0.2285200000000001em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="accent-body"><span>^</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mrel">=</span><span class="mord mathit" style="margin-right:0.05724em;">j</span><span class="mrel">=</span><span class="mopen">(</span><span class="mord"><span class="mord mathit">m</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mbin">+</span><span class="mord mathrm">1</span><span class="mclose">)</span><span class="mbin">+</span><span class="mord mathrm">1</span><span class="mpunct">,</span><span class="mord mathrm">.</span><span class="mord mathrm">.</span><span class="mord mathrm">.</span><span class="mpunct">,</span><span class="mopen">(</span><span class="mord"><span class="mord mathit">m</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mbin">+</span><span class="mord mathrm">1</span><span class="mclose">)</span><span class="mbin">+</span><span class="mopen">(</span><span class="mord"><span class="mord mathit">n</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mbin">−</span><span class="mord mathrm">1</span><span class="mclose">)</span></span></span></span>表示虚拟目标。</p> <p><strong>第4节 仿真结果</strong></p> <p>在一个仿真环境中，我们证明了团队理论在多无人机任务分配问题中的有效性。考虑一个100×100的地理搜索空间，地理区域中有20个目标，如图3所示。搜索和攻击操作执行200个时间步，这也代表了无人机的飞行时间。每架无人机的传感器范围是20。目标的位置对无人机来说是事先不知道的。搜索空间中的所有目标对于这些模拟集都具有相同的目标值，但是，通常情况下，根据其威胁程度，目标可能具有不同的目标值。<br>
目标在搜索空间中随机定位。我们用7架无人机执行任务。无人机对目标执行搜索、攻击和推测任务。比较了基于团队理论的无人机任务分配与其他任务分配的结果，即贪婪分配和完全通信的有限传感器范围。</p> <p><em>4.1 贪婪分配</em>，在这个分配方案中，每一个无人机都决定移动到一个能带来最大利益的目标。由于目标值是随机变量，我们考虑目标的期望值来计算效益<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>C</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub></mrow><annotation encoding="application/x-tex">C_{ij}</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.969438em;vertical-align:-0.286108em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit" style="margin-right:0.07153em;">C</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.07153em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord mathit">i</span><span class="mord mathit" style="margin-right:0.05724em;">j</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>。因此，第<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>i</mi></mrow><annotation encoding="application/x-tex">i</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.65952em;"></span><span class="strut bottom" style="height:0.65952em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit">i</span></span></span></span>架无人机的决定如下：</p> <p><img src="https://s1.ax1x.com/2020/09/11/wNPzbq.png" alt="wNPzbq.png"></p> <p><em>4.2 传感器范围有限并完全通信</em>，在这里，每个无人机都有有限的传感器范围<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>s</mi><mi>r</mi></msub></mrow><annotation encoding="application/x-tex">s_r</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.58056em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">s</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit" style="margin-right:0.02778em;">r</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>，但可以与所有其他无人机通信。当一个无人机感知到一个新的信息时，该无人机将该信息广播给所有其他无人机。我们假设没有通信延迟。因此，所有的无人机在任何时候都有相同的环境状态信息。所以，所有的无人机都解决了同样的LP问题。此外，虚拟目标的概念在这里并不适用，因为第<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>i</mi></mrow><annotation encoding="application/x-tex">i</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.65952em;"></span><span class="strut bottom" style="height:0.65952em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit">i</span></span></span></span>架无人机通过通信知道邻近传感器区域中存在的目标数量。与贪婪策略类似，无人机希望目标期望值最大化。第<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>i</mi></mrow><annotation encoding="application/x-tex">i</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.65952em;"></span><span class="strut bottom" style="height:0.65952em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit">i</span></span></span></span>架无人机解决了以下问题：</p> <p><img src="https://s1.ax1x.com/2020/09/11/wNiwi8.png" alt="wNiwi8.png"></p> <p>式中<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>i</mi><mo>=</mo><mn>1</mn><mo separator="true">,</mo><mi mathvariant="normal">.</mi><mi mathvariant="normal">.</mi><mi mathvariant="normal">.</mi><mo separator="true">,</mo><mi>N</mi></mrow><annotation encoding="application/x-tex">i=1,...,N</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.8777699999999999em;vertical-align:-0.19444em;"></span><span class="base textstyle uncramped"><span class="mord mathit">i</span><span class="mrel">=</span><span class="mord mathrm">1</span><span class="mpunct">,</span><span class="mord mathrm">.</span><span class="mord mathrm">.</span><span class="mord mathrm">.</span><span class="mpunct">,</span><span class="mord mathit" style="margin-right:0.10903em;">N</span></span></span></span>和<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>j</mi><mo>=</mo><mn>1</mn><mo separator="true">,</mo><mi mathvariant="normal">.</mi><mi mathvariant="normal">.</mi><mi mathvariant="normal">.</mi><mo separator="true">,</mo><msub><mi>t</mi><mi>a</mi></msub></mrow><annotation encoding="application/x-tex">j=1,...,t_a</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.65952em;"></span><span class="strut bottom" style="height:0.85396em;vertical-align:-0.19444em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.05724em;">j</span><span class="mrel">=</span><span class="mord mathrm">1</span><span class="mpunct">,</span><span class="mord mathrm">.</span><span class="mord mathrm">.</span><span class="mord mathrm">.</span><span class="mpunct">,</span><span class="mord"><span class="mord mathit">t</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">a</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>，其中<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>t</mi><mi>a</mi></msub></mrow><annotation encoding="application/x-tex">t_a</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.61508em;"></span><span class="strut bottom" style="height:0.76508em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">t</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">a</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>表示到目前为止检测到的所有目标。</p> <p><img src="https://s1.ax1x.com/2020/09/11/wNFPeI.png" alt="wNFPeI.png"></p> <p>图4显示了7架无人机在100×100搜索空间内执行搜索和攻击任务的性能曲线，如图3所示。对于每个策略的性能评估，我们使用销毁目标的百分比值（<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>T</mi><mi>d</mi></msub></mrow><annotation encoding="application/x-tex">T_d</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit" style="margin-right:0.13889em;">T</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.13889em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">d</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>）。例如，在时间步长<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>t</mi><mi>i</mi></msub></mrow><annotation encoding="application/x-tex">t_i</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.61508em;"></span><span class="strut bottom" style="height:0.76508em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">t</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>，如果<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>t</mi><mi>c</mi></msub></mrow><annotation encoding="application/x-tex">t_c</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.61508em;"></span><span class="strut bottom" style="height:0.76508em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">t</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">c</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>目标被完全摧毁（因此它们的值等于0），则<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>t</mi><mi>h</mi></msub></mrow><annotation encoding="application/x-tex">t_h</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.61508em;"></span><span class="strut bottom" style="height:0.76508em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">t</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">h</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>目标被摧毁一半，<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>t</mi><mi>n</mi></msub></mrow><annotation encoding="application/x-tex">t_n</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.61508em;"></span><span class="strut bottom" style="height:0.76508em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">t</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">n</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>目标不被攻击，则:</p> <p><img src="https://s1.ax1x.com/2020/09/11/wNivWD.png" alt="wNivWD.png"></p> <p>目标值销毁（<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>T</mi><mi>d</mi></msub></mrow><annotation encoding="application/x-tex">T_d</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit" style="margin-right:0.13889em;">T</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.13889em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">d</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>）提供了一个关于搜索空间中有多少目标被半毁和全毁的信息。我们可以看到，随着时间的推移，被摧毁的目标数量增加，因此被摧毁的目标值（<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>T</mi><mi>d</mi></msub></mrow><annotation encoding="application/x-tex">T_d</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit" style="margin-right:0.13889em;">T</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.13889em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">d</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>）也随之增加。与其他两种策略相比，贪婪策略的性能最差。然而，团队理论策略在无人机之间没有交流的情况下表现得最好。</p> <p><strong>结论</strong>：本文针对多无人机在未知区域执行搜索和攻击任务，提出了一种基于团队理论的任务分配策略，该区域由未知目标组成，无人机之间没有通信，传感器距离有限。通过仿真研究了团队理论在任务分配中的性能，结果表明团队理论比其他策略表现出更好的性能。该方案不需要任何通信，适用于通信延迟或通信不足成为无人机任务性能的决定因素的情况。任务分配算法可以扩展到大量的无人机，并且没有通信开销。这是文献中为数不多的应用团队理论有效地解决实际问题的应用之一。</p> <h2 id="_2019-基于共生生物搜索算法的多无人机异构目标侦察任务分配"><a href="#_2019-基于共生生物搜索算法的多无人机异构目标侦察任务分配" class="header-anchor">#</a> [2019]基于共生生物搜索算法的多无人机异构目标侦察任务分配</h2> <p>9月11日阅，论文名称：Multi-UAV Reconnaissance Task Assignment for Heterogeneous Targets Based on Modified SymbioticOrganisms Search Algorithm，《Sensors》，作者来自<em>南京航空航天大学</em>，<a href="https://wws.lanzous.com/i4sZGgj0y6f" target="_blank" rel="noopener noreferrer">论文查看<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a>。</p> <blockquote><p><strong>摘要</strong>：本文研究了不同传感器容量的多无人机侦察任务分配问题。采用改进的多目标共生生物搜索算法（MOSOS）对无人机的任务序列进行优化。针对异构目标，建立了基于时间窗的任务模型。然后，将基本任务分配问题归结为一个基于多时间窗的Dubins旅行推销员问题（MTWDTSP）。针对逻辑和物理约束下的任务分配问题，建立了双链编码规则和若干准则。通过引入Pareto优势度确定和全局自适应比例因子来提高原moso的性能。本文还给出了任务分配问题的数值模拟和蒙特卡罗模拟结果，并与非支配排序遗传算法（NSGA-II）和原MOSOS算法进行了比较，验证了该方法的优越性。仿真结果表明，在MTWDTSP中，改进的SOS在优化和效率方面优于原MOSOS和NSGA-II。</p></blockquote> <p>关键词：<em>UAV</em>（无人机）; <em>reconnaissance task assignment</em>（侦察任务分配）; <em>sensor</em>（传感器）; <em>Pareto dominance determination</em>（帕累托优势度判定）;<em>symbiotic organisms search</em>（共生生物搜索）</p> <p><strong>第1节 引言</strong>，近十年来，无人机在军事侦察中发挥着越来越重要的作用。当需要多个侦察任务时，通常需要与多个无人机协同执行任务。协同任务分配的目的是为无人机分配必要的任务，并确定适当的任务执行顺序，使无人机的总体性能达到最大化。<br>
在协同任务分配中，通常考虑战场态势和无人机机组的允许性能范围。</p> <p>协同任务分配问题（CTAP）通常被认为是NP难问题。在以往的一些工作中，基本的CTAP被描述为一个混合集成线性规划（MILP）问题[3]，其目的是获得一个最优分配解。利用自身或与邻近无人机通信获得的信息，采用分散的方法来处理动态的、意外的情况[4]。为了减少计算负担，采用遗传算法等优化算法获得次优解[5]。Shaferman等人。[6] 考虑了无人机的动态约束，保证了飞行轨迹的可飞性，并采用随机搜索方法改进了分配方案。庆泰等人。[7] 提出了一种基于ETA的分布式任务到达时间分配算法。在上述工作中，无人机到达任务位置的路径在分配过程中没有得到精确的计算。</p> <p>在实际任务规划中，无人机执行任务的路径也应考虑在内。因此，在以往的一些研究中，基本的CTAP被定义为旅行商问题（TSP）[8]，其目的是寻找一个推销员以最短路径访问所有城市的最优方案。对于原始TSP，两个城市之间的距离通常被认为是欧几里德长度。根据无人机的动态特性和约束条件，在CTAP中引入Dubins车辆模型和Dubins路径进行路径长度计算[9]。因此，CTAP被描述为一个Dubins旅行商问题（DTSP）[10]。此外，Zhang等人。[11] 考虑无人机传感器的有效射程，将CTAP问题归结为一个带邻域的Dubins旅行商问题（DTSPN）。Wang等人。[12] 将多无人机侦察任务分配视为一个扩展的多DTSP，由于目标的特性，对异构目标的访问路径必须满足特定的约束条件。由于侦察任务具有时间敏感性，所需的执行时间将影响无人机对任务和飞行路径的选择。考虑到任务（目标）的时间窗口，Karabulut等人。[13] 制定了包含准备时间和到期时间的服务时间的TSP，称为TSPTW。Nunes等人。[14] 解释了将时间窗视为硬时间约束和软时间约束的不同情况。</p> <p>对于CTAP这一课题，上述文献主要集中在无人机的异构特征和运动学约束上，而忽略或认为目标的特征是同质的。本文研究了无人机侦察任务分配问题，考虑了具有不同特征和尺寸的地面目标。为了描述CTAP，提出了一种新的多无人机协同侦察任务分配模型：基于多时间窗的Dubins旅行推销员问题（MTWDTSP）。与MILP形式相比，MTWDTSP考虑了不同飞行路径对分配结果的影响；与普通TSP形式相比，MTWDTSP能够处理不同时间窗对任务序列的影响。在这一特殊问题中，根据目标的特点和无人机传感器的性能，将异构侦察目标分为点目标、条带目标和面目标。为了完成对每个目标的侦察，无人机必须利用机载传感器覆盖所有异构目标。</p> <p>MTWDTSP是一个典型的NP难多目标优化问题。采用群体智能优化方法（如Bayesian方法[15]）在有限空间内解决静态环境中任务点独立的问题，降低了建模和计算的复杂度。近年来，基于启发式和生物启发算法的群体智能优化方法被用于解决多目标优化问题，包括模拟退火算法[16]、禁忌搜索算法[17]、遗传算法（NSGA-II）[18,19]、人工鱼群算法[20]，蚁群算法[21]和粒子群优化（小生境粒子群算法）[22–25]。在求解这些数学问题时，这些算法不需要比大多数传统的梯度算法更好的性能。传统的群智能优化算法可以获得低维问题的局部最优解。随着无人机数量和任务（目标）的增加，传统的群体智能优化算法容易早熟陷入局部最优。为了尽可能多地搜索设计的可能解空间，Cheng和Prayogo[26]在2014年首次提出了一种新的元启发式优化算法，称为共生生物搜索（symbiotic organissearch，SOS）。</p> <p>在本文中，我们引入了一种改进的多目标共生生物搜索（MOSOS）[27]，来求解具有动态时间窗约束、任务类型约束和无人机传感器约束的MTWDTSP问题。为了提高MOSOS的性能，采用全局自适应寄生参数[28]来提高收敛速度。引入Pareto最优解集，改善了种群的多样性，提高了收敛到最优解的概率。同时，为了提高算法的效率，采用双链染色体编码对设计的解空间进行预处理。</p> <p><strong>第2节 MTWDTSP的数学模型</strong>，在这一部分中，建立了传感器、目标和无人机的模型。设计了覆盖不同形状目标的路径，计算了估计的侦察时间。</p> <p><em>2.1 无人机和传感器建模</em>，侦察地面目标需要机载传感器。假设当地面目标被传感器视场完全覆盖时，对该目标的侦察任务就完成了。在本研究中，传感器的视场被视为一个在地面上具有恒定开口角的圆形区域，忽略了高度和噪声的影响，如图1所示。在图1中，<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>H</mi><mi>U</mi></msub></mrow><annotation encoding="application/x-tex">H_U</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit" style="margin-right:0.08125em;">H</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.08125em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit" style="margin-right:0.10903em;">U</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>是飞行高度，<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>W</mi><mi>U</mi></msub></mrow><annotation encoding="application/x-tex">W_U</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit" style="margin-right:0.13889em;">W</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.13889em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit" style="margin-right:0.10903em;">U</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>是传感器的探测宽度，轴<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>X</mi><mi>U</mi></msub><mo>−</mo><msub><mi>Z</mi><mi>U</mi></msub><mo>−</mo><msub><mi>Y</mi><mi>U</mi></msub></mrow><annotation encoding="application/x-tex">X_U-Z_U-Y_U</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit" style="margin-right:0.07847em;">X</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.07847em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit" style="margin-right:0.10903em;">U</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mbin">−</span><span class="mord"><span class="mord mathit" style="margin-right:0.07153em;">Z</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.07153em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit" style="margin-right:0.10903em;">U</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mbin">−</span><span class="mord"><span class="mord mathit" style="margin-right:0.22222em;">Y</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.22222em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit" style="margin-right:0.10903em;">U</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>表示无人机的机身/动力系统。</p> <p><img src="https://s1.ax1x.com/2020/09/11/wNKQv6.png" alt="wNKQv6.png"></p> <p><em>2.2 异构地面目标建模</em>，一般来说，目标形状是基本特征之一。为了便于确定侦察持续时间和路径，将目标形状分为点目标、条形目标和地面目标。由于目标的大小不同，同一架无人机对每种类型的目标会有不同的探测时间。假设检测时间总是低于时间窗，则通过以下规定确定合适的目标检测时间：</p> <ul><li>对于点目标，默认检测时间为固定时间：<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>t</mi><mi>d</mi></msub><mo>=</mo><msub><mi>t</mi><mrow><mi>D</mi><mi>e</mi><mi>c</mi></mrow></msub></mrow><annotation encoding="application/x-tex">t_d=t_{Dec}</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.61508em;"></span><span class="strut bottom" style="height:0.76508em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">t</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">d</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mrel">=</span><span class="mord"><span class="mord mathit">t</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord mathit" style="margin-right:0.02778em;">D</span><span class="mord mathit">e</span><span class="mord mathit">c</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>；</li> <li>对于条带目标，无人机沿条带延伸方向探测目标（如图2所示），探测持续时间为td=Lst/VU，其中Lst为目标延伸长度，VU为无人机速度。</li></ul> <p><img src="https://s1.ax1x.com/2020/09/11/wNKwxP.png" alt="wNKwxP.png"></p> <ul><li>对于平面目标，无人机必须沿“Z”字形路径飞行以探测整个区域。考虑到检测区域的不规则性，如图3a所示，首先采用等间隔旋转法求出不规则区域的最小外切矩形（smallest circumscribed rectangle , SCR）。然后将外切矩形分割成若干个较小的矩形，最后，无人机可以沿“Z”字形路径对整个区域进行检测。将SCR表示为<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>H</mi><mrow><mi>m</mi><mi>i</mi><mi>n</mi></mrow></msub><mo>=</mo><msub><mi>L</mi><mrow><mi>s</mi><mi>f</mi></mrow></msub><mo>∗</mo><msub><mi>W</mi><mrow><mi>s</mi><mi>f</mi></mrow></msub></mrow><annotation encoding="application/x-tex">H_{min}=L_{sf}*W_{sf}</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.969438em;vertical-align:-0.286108em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit" style="margin-right:0.08125em;">H</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.08125em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord mathit">m</span><span class="mord mathit">i</span><span class="mord mathit">n</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mrel">=</span><span class="mord"><span class="mord mathit">L</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord mathit">s</span><span class="mord mathit" style="margin-right:0.10764em;">f</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mbin">∗</span><span class="mord"><span class="mord mathit" style="margin-right:0.13889em;">W</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.13889em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord mathit">s</span><span class="mord mathit" style="margin-right:0.10764em;">f</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>，其中<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>L</mi><mrow><mi>s</mi><mi>f</mi></mrow></msub></mrow><annotation encoding="application/x-tex">L_{sf}</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.969438em;vertical-align:-0.286108em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">L</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord mathit">s</span><span class="mord mathit" style="margin-right:0.10764em;">f</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>和<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>W</mi><mrow><mi>s</mi><mi>f</mi></mrow></msub></mrow><annotation encoding="application/x-tex">W_{sf}</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.969438em;vertical-align:-0.286108em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit" style="margin-right:0.13889em;">W</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.13889em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord mathit">s</span><span class="mord mathit" style="margin-right:0.10764em;">f</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>分别代表长度和宽度，如图3b所示。</li></ul> <p><img src="https://s1.ax1x.com/2020/09/11/wNK5rT.png" alt="wNK5rT.png"></p> <p>值得指出的是，选择曲面或条带的入口点和Dubins路径的生成方法可以在[12]中找到。</p> <p>非均匀目标的第二个特征是可探测时间。侦察任务的时间属性意味着目标有一个固定的时间窗口（如图4所示）：</p> <p><img src="https://s1.ax1x.com/2020/09/11/wNMYLT.png" alt="wNMYLT.png"></p> <p><span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>T</mi><mrow><mi>t</mi><mi>a</mi><mi>s</mi><mi>k</mi></mrow></msub><mo>=</mo><mo>(</mo><msub><mi>t</mi><mrow><mi>b</mi><mi>e</mi><mi>g</mi><mi>i</mi><mi>n</mi></mrow></msub><mo separator="true">,</mo><msub><mi>t</mi><mrow><mi>e</mi><mi>n</mi><mi>d</mi></mrow></msub><mo>)</mo></mrow><annotation encoding="application/x-tex">T_{task}=(t_{begin},t_{end})</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1.036108em;vertical-align:-0.286108em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit" style="margin-right:0.13889em;">T</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.13889em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord mathit">t</span><span class="mord mathit">a</span><span class="mord mathit">s</span><span class="mord mathit" style="margin-right:0.03148em;">k</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mrel">=</span><span class="mopen">(</span><span class="mord"><span class="mord mathit">t</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord mathit">b</span><span class="mord mathit">e</span><span class="mord mathit" style="margin-right:0.03588em;">g</span><span class="mord mathit">i</span><span class="mord mathit">n</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mpunct">,</span><span class="mord"><span class="mord mathit">t</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord mathit">e</span><span class="mord mathit">n</span><span class="mord mathit">d</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mclose">)</span></span></span></span>，其中<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>t</mi><mrow><mi>b</mi><mi>e</mi><mi>g</mi><mi>i</mi><mi>n</mi></mrow></msub></mrow><annotation encoding="application/x-tex">t_{begin}</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.61508em;"></span><span class="strut bottom" style="height:0.9011879999999999em;vertical-align:-0.286108em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">t</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord mathit">b</span><span class="mord mathit">e</span><span class="mord mathit" style="margin-right:0.03588em;">g</span><span class="mord mathit">i</span><span class="mord mathit">n</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>是可用于探测的最早时间，<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>t</mi><mrow><mi>e</mi><mi>n</mi><mi>d</mi></mrow></msub></mrow><annotation encoding="application/x-tex">t_{end}</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.61508em;"></span><span class="strut bottom" style="height:0.76508em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">t</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord mathit">e</span><span class="mord mathit">n</span><span class="mord mathit">d</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>是可用的最晚时间，这被认为是硬约束。用<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>G</mi><mi>e</mi><msub><mi>t</mi><mrow><mi>u</mi><mi>a</mi><mi>v</mi></mrow></msub></mrow><annotation encoding="application/x-tex">Get_{uav}</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord mathit">G</span><span class="mord mathit">e</span><span class="mord"><span class="mord mathit">t</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord mathit">u</span><span class="mord mathit">a</span><span class="mord mathit" style="margin-right:0.03588em;">v</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>表示无人机的到达时间，然后执行tc前的等待时间（如图5所示）可以计算如下：</p> <p><img src="https://s1.ax1x.com/2020/09/11/wNM6OK.png" alt="wNM6OK.png"></p> <p><img src="https://s1.ax1x.com/2020/09/11/wNMfFH.png" alt="wNMfFH.png"></p> <p><em>2.3 多无人机侦察任务分配模型</em>，多个协同无人机的任务分配问题可以描述如下</p> <p><em>2.4 绩效指标（PI）的数学模型及约束条件</em>，在这个问题中，指派的约束包括两个部分：物理约束和逻辑约束。物理约束关系到无人机的飞行特性和任务特性，而逻辑约束则侧重于各种任务的要求和无人机执行侦察任务的策略。一些基本约束如下：</p> <ol><li>所有无人机从基地出发，最终返回基地。</li> <li>每个任务只能完成一次。</li> <li>分配方案应与每个单独任务的时间窗口和成像要求相匹配。</li> <li>每个无人机在同一时间段内只能分配一个任务。</li> <li>每架无人机执行任务的总时间不应超过最长飞行时间。</li></ol> <p><strong>第3节 MTWDTSP的改进型SOS</strong>，原始的MOSOS算法是针对自然界中生物体之间的合作行为而设计的。在搜索过程中，每一个有机体都会在三个不同的阶段受益于与他人的持续相互作用[24]：共生、共生和寄生。互惠互利使双方受益；共栖主义使一方受益，另一方不受影响；寄生使一方受益，另一方受害。这三个阶段是从最常见的共生体采用的生物体，以提高其适应能力和长期生存优势。最佳有机体的更新机制是在一代有机体完成三个阶段后触发的。重复这些阶段，直到达到停止标准。原MOSOS算法具有操作简单、控制参数少、稳定性好、优化能力强等优点，但也存在成熟期早、后期搜索滞后等缺点[30]。对于所提出的问题，结合提高解的多样性和质量，提高算法收敛精度，降低计算复杂度的动机，对原MOSOS算法进行了几次修改[31]。采用“帕累托优势决定”方法[32]对所提问题的性能指标进行预处理，以提高非劣解的多样性。同时，采用全局自适应的方法来提高原moso的速度、精度和收敛特性。</p> <p><em>3.1 双决策链编码</em><br> <em>3.2 Pareto优势判定与最优解集</em><br> <em>3.3 具有全局自适应比例因子的改进型SOS</em><br> <em>3.4 算法的最优解选择</em></p> <p><strong>第4节 数值模拟结果与分析</strong>，通过数值模拟实验验证了该方法的有效性。数值实验采用Visual C++（Ver）生成。10.0），并使用MATLAB创建了说明结果的图形。整个模拟是在一个工作站上进行的，该工作站由一个3.5ghz的intelcore-i7cpu和16gb的物理RAM组成，运行64位微软windows10系统。</p> <p><strong>结论</strong>：通过数值模拟实验验证了该方法的有效性。<br>
数值实验采用Visual C++（Ver）生成。10.0），并使用MATLAB创建了说明结果的图形。整个模拟是在一个工作站上进行的，该工作站由一个3.5ghz的intelcore-i7cpu和16gb的物理RAM组成，运行64位microsoftwindows10。结论将多无人机侦察任务分配问题归结为一个多目标、多约束的非线性优化问题。针对这一问题，建立了具有时间窗的无人机协同侦察任务模型。为了解决任务分配问题，构建了两个PIs，并对其进行了优化。在处理多无人机任务分配优化模型时，采用了基于Pareto优势度确定和全局自适应操作的改进MOSOS算法。为了解决任务分配模型的各种约束条件，将每个无人机自身设计的决策变量映射到任务的角度。因此，改进MOSOS的双链编码本质上满足了任务分配模型的约束要求，大大降低了决策变量的维数，从而加快了算法的收敛速度。本研究设计了全球最佳外部档案和最佳外部个人档案。此外，本研究定义了每个个体的密度函数，从而确保问题的解满足多样性和同质性的要求。最后给出了数值模拟结果和蒙特卡罗模拟的统计结果，验证了该方法的优越性和有效性。</p> <h2 id="_2017-不确定环境下基于灰狼优化的贝叶斯多无人机路径规划"><a href="#_2017-不确定环境下基于灰狼优化的贝叶斯多无人机路径规划" class="header-anchor">#</a> [2017]不确定环境下基于灰狼优化的贝叶斯多无人机路径规划</h2> <p>9月14日阅，论文名称：Grey wolf optimization based sense and avoid algorithm in a Bayesian framework for multiple UAV path planning in an uncertain environment，《Aerospace Science and Technology》，作者来自<em>美国辛辛那提大学</em>，<a href="https://wws.lanzous.com/ibm2wgjauyj" target="_blank" rel="noopener noreferrer">论文查看<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a>。</p> <blockquote><p><strong>摘要</strong>：无人驾驶飞行器（Unmanned Air Vehicles，简称uav）由于其潜在的民用应用前景，近年来受到了众多研究者的关注。然而，在无人机能够在民用空域飞行之前，它们需要能够安全地导航到目的地，同时在过境过程中保持与其他有人和无人飞机的分离。无人机自主导航的算法需要获取有关环境状态的准确信息，以获得良好的性能。然而，这些信息往往是不确定的和动态变化的。本文提出了一种基于灰色狼优化（gwolf Optimization，gwolf）的无人机航迹优化算法，该算法在存在未知轨迹的移动障碍物（即入侵飞机）的情况下寻找最优轨迹。该解决方案使用了一种有效的贝叶斯形式和基于距离的值函数（DBVF）的单元权重的概念。假设无人机配备自动相关监视广播（ADS-B），并通过ADS-B或地基雷达获得IAs的位置。然而，无人机不知道IAs未来的轨迹。通过对多个场景的仿真验证了该方法的有效性。结果表明，该方法对解决无人机的轨迹规划问题是有效的。</p></blockquote> <p>关键词：<em>Grey wolf optimization</em>（灰狼优化）；<em>Trajectory planning</em>（轨迹规划）；<em>Cooperative flight</em>（协同飞行）；<em>Bayesian framework</em>（贝叶斯框架）</p> <p><strong>第1节 引言</strong>，多年来，无人驾驶飞行器（UAV）一直被用于军事行动。近年来，无人机因其在民用领域的潜在应用而引起了广泛的兴趣，如应急管理、执法、决策农业、包裹递送和成像/监视[1]。然而，在无人机在民用领域的使用成为现实之前，需要克服一些技术挑战。尤其是无人机与国家空域系统（NAS）集成所带来的挑战，在它们能够在民用空域开始飞行之前，必须解决这些挑战。其中一个重要的挑战是无人机不仅要规划完成任务的路径，还要重新规划或调整轨迹（称为感知和避免能力），以避免与其他飞机相撞。此外，在过去的50年里，飞机数量急剧增加。随着未来无人机数量的增加和无人机队的加入，将对当前的空中交通管制（ATC）提出严峻的挑战。因此，航空无线电技术委员会（RTCA）和联邦航空管理局（FAA）负责在2020年前实现从空中交通管制到空中交通管理（ATM）的无缝转变[2,3]和[4]。对于有人驾驶飞机，飞行员预定轨迹（PPT）的概念已经被实施，以允许飞行员和航空公司根据其独特的操作要求来规划和管理飞行轨迹。这个系统已经被证明是不可靠的，在未来的情况下，包括在空域中的无人机将变得不那么有用。为了解决这一问题，计划在2020年前在飞行期间使用用于传输飞行数据的自动相关监视广播（ADS-B）系统。实施ing-ADS-B的一个预期优势是，通过增强NAS中飞行的自主性，飞机可以以最小的飞行员干扰导航，最终完全独立于飞行员飞行。</p> <p>文献中提出了各种计算逃生轨迹的方法，包括经典控制[8]、模糊逻辑[9]、电场机动规划[10,11]、博弈论[12]、混合整数线性规划（MILP）[13,14]及其在数控机床路径规划中的应用[15,16]，汽车轨迹规划[17]，空中交通管理[18]。无人机的路径规划已经作为任务分配问题的一部分进行了研究[19–23]和[24]。</p> <p>多无人机在不同应用中的应用吸引了许多研究者。除了多个无人机提供执行复杂和异构任务的能力外，协同飞行性能的优势之一也是节省燃料[25,26]。从理论和实践的角度来看，此类系统的路径规划提供了许多具有挑战性的问题[27]。飞行编队是指一组无人机在规定的体积内紧密合作飞行时的一个特殊管理问题[28]，通常具有预定义的形状。尽管对无人机主动路径规划的研究已经被考虑了很多次（例如，见[29-31]），但针对无人机的协同路径规划方法才刚刚开始出现。飞行问题的形成是文献中广泛研究的问题。仅考虑飞行控制，分别采用比例积分控制[32]或非线性控制[33]研究经典的领队翼手构型。[34]中讨论了一种基于反应行为的控制器。文献[35,36]分别讨论了采用集中式算法和分布式算法求解大型目标轨迹优化问题，并考虑了编队形状的一些约束条件。在[37]中，通过提出一种离线计算轨迹以在有限数量的编队配置之间切换的方案，引入了编队的重构。在文献[38,20,39,40]中，通过混合整数线性规划（MILP）的实现，解决了一组具有时间约束的紧耦合任务分配问题。</p> <p>在现实世界中，避碰问题变得越来越复杂，其中最重要的挑战是不确定性。这在NAS中是相关的，因为IAs可以随时添加，它们的飞行计划可能不会共享（不合作的IAs）或由于感知错误或通信延迟而出错。考虑到这些问题，本文将重点放在有关IAs的信息具有不确定性的情况下。在不确定性[41–44]和[45]下，已有大量的无人机轨迹规划工作。此外，基于贝叶斯数学的方法已被广泛用于克服无人机路径规划过程中的各种挑战，并被证明在这方面非常有用[46–48]和[49]。</p> <p>本文在前人工作的基础上，利用距离基值函数（DBVF）和贝叶斯更新方法，基于ADS-B和雷达提供的不确定信息建立风险地图。这样就可以将信息整合到基于灰太狼优化（gwolf optimization，GWO）的优化方案中，该方案在飞行任务期间为飞行器规划路径。GWO是在[50]中提出的一种新的智能算法。在多个不同应用程序上的实现表明了该方法的稳定性和良好的收敛速度[51,52]和[53]。该方法是在捕食性灰狼的社会分层结构基础上发展起来的。该方法利用了用于模拟具有不确定运动的入侵飞机的信息，并在动态规划路径时适当地考虑了这些信息。在文献[54]中，采用GWO算法求解作战环境下无人机二维路径规划问题的最优路径。文献[55]研究了城市环境下多无人机协同目标跟踪问题。在文献[55]中，通过将问题归结为一个优化问题，并结合模型预测控制（MPC）的实时性和GWO强大的搜索能力，实现了轨迹规划的优化。最后，以多个与NAS相关的飞行场景为例，验证了该方法的有效性。</p> <p>本文的结构安排如下：在下一节中，我们为这个问题建立了一个成本函数。第三节介绍了DBVF方法。在第四节中，给出了问题的一般表达式。然后在第五部分，我们描述了我们有效的贝叶斯方法。随后，GWO算法在第6节中被提出。在第7节中定义了考虑此问题的四旋翼机的动力学。最后，在第8节和第9节分别给出了几种飞行场景和飞行模拟结果及分析。</p> <p><strong>第2节 轨迹规划模型与公式</strong>，我们假设无人机只能在规定的速度范围内飞行，机动能力有限。无人机<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>m</mi></mrow><annotation encoding="application/x-tex">m</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.43056em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit">m</span></span></span></span>的飞行轨迹在<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>R</mi></mrow><annotation encoding="application/x-tex">R</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.68333em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.00773em;">R</span></span></span></span>区域。本文中，<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>ρ</mi></mrow><annotation encoding="application/x-tex">\rho</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.625em;vertical-align:-0.19444em;"></span><span class="base textstyle uncramped"><span class="mord mathit">ρ</span></span></span></span>是无人机从初始位置<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>x</mi><mrow><mn>0</mn><mo separator="true">,</mo><mi>m</mi></mrow></msub></mrow><annotation encoding="application/x-tex">x_{0,m}</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.716668em;vertical-align:-0.286108em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">x</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord mathrm">0</span><span class="mpunct">,</span><span class="mord mathit">m</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>到目标位置<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>x</mi><mrow><mi>f</mi><mo separator="true">,</mo><mi>m</mi></mrow></msub></mrow><annotation encoding="application/x-tex">x_{f,m}</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.716668em;vertical-align:-0.286108em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">x</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord mathit" style="margin-right:0.10764em;">f</span><span class="mpunct">,</span><span class="mord mathit">m</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>的所有单位面积或单元的集合。所考虑的问题可以表述为加权各向异性最短路径问题。目标是寻找最佳路径<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msup><mi>ρ</mi><mo>∗</mo></msup></mrow><annotation encoding="application/x-tex">\rho^*</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.688696em;"></span><span class="strut bottom" style="height:0.8831359999999999em;vertical-align:-0.19444em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">ρ</span><span class="vlist"><span style="top:-0.363em;margin-right:0.05em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle uncramped"><span class="mord">∗</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>，以便：</p> <p><img src="https://s1.ax1x.com/2020/09/14/wroNXq.png" alt="wroNXq.png"></p> <p>式中，<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>J</mi><mo>[</mo><mi>ρ</mi><mo>]</mo></mrow><annotation encoding="application/x-tex">J[\rho]</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.09618em;">J</span><span class="mopen">[</span><span class="mord mathit">ρ</span><span class="mclose">]</span></span></span></span>表示由以下定义的成本函数：</p> <p><img src="https://s1.ax1x.com/2020/09/14/wrbWxH.png" alt="wrbWxH.png"></p> <p>上述方程中的<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>W</mi><mo>(</mo><mi>i</mi><mo>(</mo><mi>t</mi><mo>)</mo><mo>)</mo><mo>)</mo></mrow><annotation encoding="application/x-tex">W(i(t)))</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.13889em;">W</span><span class="mopen">(</span><span class="mord mathit">i</span><span class="mopen">(</span><span class="mord mathit">t</span><span class="mclose">)</span><span class="mclose">)</span><span class="mclose">)</span></span></span></span>表示第<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>i</mi></mrow><annotation encoding="application/x-tex">i</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.65952em;"></span><span class="strut bottom" style="height:0.65952em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit">i</span></span></span></span>个单元格在时间<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>t</mi></mrow><annotation encoding="application/x-tex">t</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.61508em;"></span><span class="strut bottom" style="height:0.61508em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit">t</span></span></span></span>时对路径<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>ρ</mi></mrow><annotation encoding="application/x-tex">\rho</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.625em;vertical-align:-0.19444em;"></span><span class="base textstyle uncramped"><span class="mord mathit">ρ</span></span></span></span>的权重函数，其中包括与路径相关的距离和风险。该权重函数的推导见第5节（见等式（24））。风险函数由整个路径的单元权重之和定义。与特定单元相关的单元重量表示与其他飞机和静止障碍物碰撞风险的度量。这是根据从雷达或ADS-B获得的数据从动态意义上计算的。可以注意到，路径的总重量是与目标位置的距离和与入侵飞机相撞的风险的组合。</p> <p><strong>第3节 基于距离的值函数（DBVF）</strong>，在当前的公式中，如上所述，整个飞行区域被划分为一组细分区域。初始权值函数是基于DBVF的，当单元与目标位置的距离增加时，单元的权重就会增加。</p> <p><strong>第4节 风险模型</strong>，本节介绍了我们提出的确定碰撞风险的方法。风险本质上量化了第<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>m</mi></mrow><annotation encoding="application/x-tex">m</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.43056em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit">m</span></span></span></span>个无人机<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>m</mi><mo>∈</mo><mo>[</mo><mn>0</mn><mo separator="true">,</mo><mi mathvariant="normal">.</mi><mi mathvariant="normal">.</mi><mi mathvariant="normal">.</mi><mo separator="true">,</mo><mi>M</mi><mo>]</mo></mrow><annotation encoding="application/x-tex">m \in [0,...,M]</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mord mathit">m</span><span class="mrel">∈</span><span class="mopen">[</span><span class="mord mathrm">0</span><span class="mpunct">,</span><span class="mord mathrm">.</span><span class="mord mathrm">.</span><span class="mord mathrm">.</span><span class="mpunct">,</span><span class="mord mathit" style="margin-right:0.10903em;">M</span><span class="mclose">]</span></span></span></span>在第<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>i</mi></mrow><annotation encoding="application/x-tex">i</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.65952em;"></span><span class="strut bottom" style="height:0.65952em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit">i</span></span></span></span>个单元格内的碰撞危险，因为在无人机<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>m</mi></mrow><annotation encoding="application/x-tex">m</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.43056em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit">m</span></span></span></span>附近的一组单元格<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>ϕ</mi></mrow><annotation encoding="application/x-tex">\phi</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.69444em;"></span><span class="strut bottom" style="height:0.8888799999999999em;vertical-align:-0.19444em;"></span><span class="base textstyle uncramped"><span class="mord mathit">ϕ</span></span></span></span>中存在入侵者飞机（Intruder Aircraft, IAs）。时间风险建模为：</p> <p><img src="https://s1.ax1x.com/2020/09/14/wrqcmn.png" alt="wrqcmn.png"></p> <p>其中，在<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>ϕ</mi></mrow><annotation encoding="application/x-tex">\phi</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.69444em;"></span><span class="strut bottom" style="height:0.8888799999999999em;vertical-align:-0.19444em;"></span><span class="base textstyle uncramped"><span class="mord mathit">ϕ</span></span></span></span>中的<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>R</mi></mrow><annotation encoding="application/x-tex">R</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.68333em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.00773em;">R</span></span></span></span>，<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>F</mi></mrow><annotation encoding="application/x-tex">F</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.68333em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.13889em;">F</span></span></span></span>，<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>T</mi></mrow><annotation encoding="application/x-tex">T</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.68333em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.13889em;">T</span></span></span></span>，<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>E</mi></mrow><annotation encoding="application/x-tex">E</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.68333em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.05764em;">E</span></span></span></span>和<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>H</mi></mrow><annotation encoding="application/x-tex">H</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.68333em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.08125em;">H</span></span></span></span>变量，在指定无人机<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>m</mi></mrow><annotation encoding="application/x-tex">m</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.43056em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit">m</span></span></span></span>路径<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>ρ</mi></mrow><annotation encoding="application/x-tex">\rho</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.625em;vertical-align:-0.19444em;"></span><span class="base textstyle uncramped"><span class="mord mathit">ρ</span></span></span></span>上表示：</p> <p><em>4.1 风险函数的推导</em>,首先，我们将整个区域划分为离散的等面积单元。每个单元代表一个二维区域，与每个单元对应的是有关环境的信息，或者更具体地说，单元所呈现的物理区域内的任何潜在威胁都会附加在一起。单元或单元集合的权重是使用事件定义定义定义的。让这些事件上的一个过线代表事件的补充。例如， <span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mover accent="true"><mrow><mi>f</mi></mrow><mo>¯</mo></mover><mi>m</mi></msub></mrow><annotation encoding="application/x-tex">\bar{f}_m</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.8312199999999998em;"></span><span class="strut bottom" style="height:1.0256599999999998em;vertical-align:-0.19444em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord accent"><span class="vlist"><span style="top:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="mord textstyle cramped"><span class="mord mathit" style="margin-right:0.10764em;">f</span></span></span><span style="top:-0.26343999999999995em;margin-left:0.33334em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="accent-body"><span>¯</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">m</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>是一组在集合<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>ϕ</mi></mrow><annotation encoding="application/x-tex">\phi</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.69444em;"></span><span class="strut bottom" style="height:0.8888799999999999em;vertical-align:-0.19444em;"></span><span class="base textstyle uncramped"><span class="mord mathit">ϕ</span></span></span></span>中的单元，不会被入侵飞机侵入。在概率推导中，这些集合之间有一些关系。例如，无人机在下一时间步可以占用的单元集是碰撞区域的一个子集，即<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>R</mi><mi>m</mi></msub><mo>⊆</mo><msub><mi>T</mi><mi>m</mi></msub></mrow><annotation encoding="application/x-tex">R_m \subseteq T_m</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit" style="margin-right:0.00773em;">R</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.00773em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">m</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mrel">⊆</span><span class="mord"><span class="mord mathit" style="margin-right:0.13889em;">T</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.13889em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">m</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>。同样地，区域<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>ϕ</mi></mrow><annotation encoding="application/x-tex">\phi</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.69444em;"></span><span class="strut bottom" style="height:0.8888799999999999em;vertical-align:-0.19444em;"></span><span class="base textstyle uncramped"><span class="mord mathit">ϕ</span></span></span></span>需要被侵入才有可能发生碰撞，所以<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>T</mi><mi>m</mi></msub><mo>⊂</mo><msub><mi>F</mi><mi>m</mi></msub></mrow><annotation encoding="application/x-tex">T_m\subset F_m</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit" style="margin-right:0.13889em;">T</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.13889em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">m</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mrel">⊂</span><span class="mord"><span class="mord mathit" style="margin-right:0.13889em;">F</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.13889em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">m</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>。另外，事件<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msubsup><mi>H</mi><mi>m</mi><mrow><mi>ϕ</mi></mrow></msubsup></mrow><annotation encoding="application/x-tex">H_m^{\phi}</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.849108em;"></span><span class="strut bottom" style="height:1.096108em;vertical-align:-0.247em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit" style="margin-right:0.08125em;">H</span><span class="vlist"><span style="top:0.247em;margin-left:-0.08125em;margin-right:0.05em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">m</span></span></span><span style="top:-0.363em;margin-right:0.05em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle uncramped"><span class="mord scriptstyle uncramped"><span class="mord mathit">ϕ</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>是一个独立的事件，仅取决于入侵飞机的位置。图1显示了不同变量的示意图(无人机、入侵飞机和无人机<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>ϕ</mi></mrow><annotation encoding="application/x-tex">\phi</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.69444em;"></span><span class="strut bottom" style="height:0.8888799999999999em;vertical-align:-0.19444em;"></span><span class="base textstyle uncramped"><span class="mord mathit">ϕ</span></span></span></span>相邻单元示意图)。最下面的目标被置于局部加权的<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>ϕ</mi></mrow><annotation encoding="application/x-tex">\phi</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.69444em;"></span><span class="strut bottom" style="height:0.8888799999999999em;vertical-align:-0.19444em;"></span><span class="base textstyle uncramped"><span class="mord mathit">ϕ</span></span></span></span>单元中。</p> <p><img src="https://s1.ax1x.com/2020/09/14/wrOAbR.png" alt="wrOAbR.png"></p> <p><strong>第5节 单元权重的启发式更新方法</strong>，现在，Hφ和H′φ相互排斥，共同消耗，即P（Hφm）+P（H′φm）=1。这里，IA未进入区域φ的概率（或信念）定义为H′φm。在这种情况下，σ的值取决于入侵者飞机进入φ的几率。</p> <p>步骤1：计算IA决策后φ被入侵的后验概率<br>
步骤2: <span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>T</mi><mi>m</mi></msub></mrow><annotation encoding="application/x-tex">T_m</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.83333em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit" style="margin-right:0.13889em;">T</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.13889em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">m</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>被<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>I</mi><mi>A</mi></mrow><annotation encoding="application/x-tex">IA</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.68333em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.07847em;">I</span><span class="mord mathit">A</span></span></span></span>入侵的概率计算</p> <p><strong>第6节 灰狼优化算法</strong>，灰狼优化算法（Grey Wolf Optimization, GWO)的灵感来自于灰狼在狩猎过程中观察到的社会协作行为。在狩猎过程中，狼的数量被分成若干亚群，称为等级。狼的等级可以在图3中看到。</p> <p><img src="https://s1.ax1x.com/2020/09/14/wrORRU.png" alt="wrORRU.png"></p> <p>如图3所示，灰狼的每一级α、β、δ和ω都代表了优化过程中的一个角色。α是最佳解，是优化过程的结果。同样，第二、第三和第四个最适解分别用β、δ和ω表示。</p> <p>该算法首先考虑一个群体的<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>S</mi></mrow><annotation encoding="application/x-tex">S</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.68333em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.05764em;">S</span></span></span></span>狼群。人口中每个成员的位置被认为是：</p> <p><img src="https://s1.ax1x.com/2020/09/14/wrO7Ix.png" alt="wrO7Ix.png"></p> <p>而第<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>s</mi></mrow><annotation encoding="application/x-tex">s</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.43056em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit">s</span></span></span></span>只狼在n维解空间中的位置可考虑为：</p> <p><img src="https://s1.ax1x.com/2020/09/14/wrOqJK.png" alt="wrOqJK.png"></p> <p>这种行为的掠夺过程可以用以下公式给出的关系式来定义：</p> <p><img src="https://s1.ax1x.com/2020/09/14/wrOvsH.png" alt="wrOvsH.png"></p> <p>在方程（25）中，kre表示当前迭代，xnp是猎物在n维的位置。方程式（25）中的最后一项表示狼包围猎物的模拟。<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msubsup><mi>A</mi><mi>s</mi><mi>n</mi></msubsup></mrow><annotation encoding="application/x-tex">A_s^n</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.93033em;vertical-align:-0.247em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">A</span><span class="vlist"><span style="top:0.247em;margin-left:0em;margin-right:0.05em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">s</span></span></span><span style="top:-0.363em;margin-right:0.05em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle uncramped"><span class="mord mathit">n</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span> 和 <span class="katex"><span class="katex-mathml"><math><semantics><mrow><msubsup><mi>C</mi><mi>s</mi><mi>n</mi></msubsup></mrow><annotation encoding="application/x-tex">C_s^n</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.68333em;"></span><span class="strut bottom" style="height:0.93033em;vertical-align:-0.247em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit" style="margin-right:0.07153em;">C</span><span class="vlist"><span style="top:0.247em;margin-left:-0.07153em;margin-right:0.05em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">s</span></span></span><span style="top:-0.363em;margin-right:0.05em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle uncramped"><span class="mord mathit">n</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>代表：</p> <p><img src="https://s1.ax1x.com/2020/09/14/wrXmes.png" alt="wrXmes.png"></p> <p>其中r1和r2是介于0和1之间的两个随机数。变量eis随迭代步骤从2线性递减到0，计算公式如下：</p> <p><img src="https://s1.ax1x.com/2020/09/14/wrX3SU.png" alt="wrX3SU.png"></p> <p>kmax表示最大迭代次数。对于每一次迭代，我们认为目标的期望位置可以用方程（29）–（32）来更新。</p> <p><img src="https://s1.ax1x.com/2020/09/14/wrXwY6.png" alt="wrXwY6.png"></p> <p>值得注意的是，对于本文所考虑的优化问题，三个最高等级α、β和δ足以提供一个可接受的解决方案。因此，在优化算法中没有使用ω级。有关方程式推导的进一步讨论，请参阅[50]。用于解决路径规划问题的算法如下所示。本文认为，目标位置是无人机控制输入的优化问题的解决方案。</p> <p><strong>第7节 四旋翼动力学</strong>，<em>7.1 动力学模型</em>，图4为坐标系和车身示意图。</p> <p><img src="https://s1.ax1x.com/2020/09/14/wrXhff.png" alt="wrXhff.png"></p> <p><em>7.2 电动机控制</em>，<em>7.3 姿态控制</em>，<em>7.4 位置控制</em>。</p> <p><strong>第8节 飞行模拟和结果</strong>，在这一节中，我们考虑多个四旋翼，m∈[1，…，m]，飞到目标位置G。</p> <p>假设入侵者飞机正在向附近的无人机广播其位置（通过ADS-B），或者被地基雷达连续无中断地重新识别。此外，在不丧失一般性的情况下，假设无人机可以在下一时间步t中占用任何一个相邻小区。</p> <p><strong>结论</strong>：本文提出了一种新的方法，利用动态贝叶斯、DBVF和GWO的形式来解决不确定环境中存在固定和移动障碍物的无人机路径规划和碰撞避免问题。利用飞机的不确定性来解决飞机的不确定性问题。当入侵飞机在靠近无人机的区域内入侵时，无人机周围的单元会根据表示碰撞风险的概率值改变其权重。然后将路径规划问题转化为以障碍物（包括静态障碍物和动态障碍物）为约束条件的优化问题。用于优化的成本函数由两部分组成：总飞行距离和一个安全度量，该度量被建模为表示碰撞风险的单元权重。与文献中使用的两种算法（GA和MILP）进行了比较，结果表明该方法对不同飞行任务的路径规划是有效的。</p> <h2 id="_2017-几何复杂环境下质量感知无人机覆盖和路径规划"><a href="#_2017-几何复杂环境下质量感知无人机覆盖和路径规划" class="header-anchor">#</a> [2017]几何复杂环境下质量感知无人机覆盖和路径规划</h2> <p>9月15日阅，论文名称：Quality-aware UAV coverage and path planning in geometrically complex environments，《Ad Hoc Networks》，正文共9页，作者来自<em>美国辛辛那提大学</em>，<a href="https://wws.lanzous.com/iG79jgnvu5a" target="_blank" rel="noopener noreferrer">论文查看<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a>。</p> <blockquote><p><strong>摘要</strong>：无人机网络在当今分布式传感系统中发挥着重要作用，它能够在大范围内提供灵活的空中视野。由于摄像机传感器对遮挡非常敏感，因此无人机在复杂的几何环境中，如密集的城市和山区，提供令人满意的传感质量更具挑战性。本文提出了一种新的质量感知和节能的无人机覆盖和路径规划方案，其目标是感知具有良好时空分辨率的几何复杂目标区域。首先设计了一种遮挡感知的航路点生成算法，以在目标区域内找到满足空间分辨率要求的最佳路径点集。然后通过求解车辆路径问题（vehicle routing problem，简称VRP）将选定的航路点分配给多个无人机，使得所有的航路点在一个全局截止时间内被访问，以满足时间分辨率要求。车辆路径问题是为了使无人机在最后期限内通过航路点的最大能量最小化。设计了一种最小-最大能量路径规划算法，该算法分两步求解：首先求解混合整数线性规划问题（mixed integer linear programming problem，简称MILP），计算无人机从一个航路点到另一个航路点的最小能量，然后设计遗传算法来规划所有无人机的路径。评估结果表明，与传统的覆盖和路径规划技术相比，本文提出的覆盖和路径规划方案具有更好的覆盖和能耗。</p></blockquote> <p>关键词：<em>Unmanned aerial vehicle networks</em>（无人机网络）；<em>Coverage</em>（覆盖）；<em>Energy efficiency</em>（能源效率）</p> <p><strong>第1节 引言</strong>，小型无人机（UAV）的出现促进了许多应用，如遥感[1]、监视[2]、边境巡逻[3]、灾害管理[4]以及野生动物和森林监测[5]。与单个无人机系统相比，部署小型无人机网络不仅可以降低成本，而且可以提高感知的可扩展性和质量。无人机网络，又称飞行自组织网络或空中传感器网络，近年来引起了许多研究人员的注意[6]。</p> <p>对于广泛的传感应用来说，实现目标区域的全覆盖和令人满意的传感质量是至关重要的。静态无线传感器网络的覆盖问题已经得到了广泛的研究[7,8]。在传感器网络中引入移动节点以提高网络覆盖率的研究也很多[9,10]。然而，无人机网络的覆盖问题需要新的考虑，因为无人机的机动性高，飞行所需的电池支持有限，以及障碍物可能会影响无人机上摄像机传感器的覆盖范围[11]。</p> <p>多无人机的动态覆盖问题一般分为两个步骤：将给定区域划分为子区域的区域划分和每个子区域内单个无人机的路径规划[11]。这种方法侧重于解决目标区域的二维几何约束。例如，文献[12]中基于最优线扫描的分解方法将一个覆盖区域划分为单调子区域，这些子区域可以被沿着垂直于扫描方向的行的基本来回运动有效地覆盖。在[13]中，总结了几种用于路径规划的几何模型，包括螺旋/螺旋状模型、割草机模型、Zamboni模型和Dubins路径模型，并介绍了一种改进的割草机/赞博尼路径规划策略，以适应不同任务可能需要的特征。在文献[14]中，基于二维数字地图，利用遗传算法生成未知障碍环境下无人机的路径。</p> <p>许多关于无人机覆盖的研究都假设目标区域具有理想的平坦地形。在现实中，各种障碍物都可能会挡住摄像机的视野。对于智能城市和野火监控等应用，在城市密集地区的建筑或农村地区的山岩中，摄像机的视野可以缩小。这表明，要实现目标区域内所有点的全覆盖，需要比理想的平坦地形条件下拍摄更多的图像。此外，为了满足传感分辨率的要求，无人机应该能够改变飞行高度来拍摄图像，这就要求在三维领域重新审视路径规划。[15]中讨论了遮挡感知多无人机监控的问题，这项工作的重点是点覆盖，即尽可能多地覆盖某些感兴趣的点。它不涉及整个区域的覆盖质量，也不涉及传感的空间和时间分辨率。</p> <p>对于无人机的路径规划，一些研究从空间分辨率的角度综合考虑了能量消耗和传感质量。根据文献[16]中不同速度、加速度和减速参数下的飞行试验，导出了一个经验能量模型，并基于该模型设计了一个在满足任务要求的情况下使能量消耗最小的路径规划算法。在文献[17]中，通过最小化能量和通信带宽的成本，找到了一组用于生成概览图像的传感点。然而，这种方法是为单无人机系统设计的，它没有解决多无人机的路径规划问题。</p> <p>在时间期限内的路径规划问题也一直是人们感兴趣的话题，其中期限可以反映传感的速度分辨率。该问题通常被称为带时间期限的车辆路径问题（VRPTD）或带时间窗的车辆路径问题（VRPTW）。文献[18]采用基于遗传算法的路由方案求解了地理空间信息系统中的VRPTD问题。该方案的重点是在满足时间期限的前提下尽量减少车辆数量和车辆之间的距离。虽然该方法在求解VRPTD问题上是成功的，但它没有考虑车辆的能耗。在文献[19]中，研究了一个称为群路由问题（SRP）的组合问题，它被描述为VRPTW的一个变种。该问题是在满足任务时间约束和路径费用优化的前提下，利用进化计算求解多无人机路径问题。为了解决作战时间问题并结合复杂的时间约束，Karaman和Frazzoli[20]提出了一种基于MILP（Mixed integer Linear programming）的多无人机失事规划算法。对于多无人机最小时间覆盖的优化问题，文[21]中的解决方案提供了一种自动选择覆盖一个区域的无人机数量的方法。提出了一种考虑无人机机动限制的时敏协同监视路径规划算法[22]。这些方法成功地解决了多无人机在时间约束下的路径规划问题，但缺少将遮挡感知覆盖与路径规划结合起来考虑的问题。</p> <p>在这篇论文中，我们提出一个感知品质的无人机网路覆盖与路径规划解决方案，以监测具有不同高度和遮挡的复杂地形。目标是在无人机有限的能量供应下，提供目标区域的全景图像，这些图像具有卫星工厂的时空分辨率。为了实现这一点，我们首先引入了一个考虑遮挡影响的摄像机感知模型。基于该感知模型，我们找到了在目标区域拍摄图像的最佳路径集，以获得满意的空间分辨率的全覆盖。其次，我们提出了一个车辆路径规划问题，在一个全局截止期内找到多个无人机的路径来访问所有的航路点，从而使无人机飞行的能量消耗最小化。在我们的前期工作[23]中，我们对无人机飞行使用了一个简单的点质量-能量模型，并且在不考虑任何时间约束的情况下规划了无人机的路径。</p> <p>在本文中，我们利用一个更全面的能量模型并考虑到无人机飞行的时间约束，扩展了我们的前期工作，并提出了一种新的求解VRPTW优化问题的技术。本文的其余部分安排如下。在第二节中，我们介绍了所提出的几何复杂场景的质量感知覆盖和路径规划技术。第三部分为绩效评估结果与讨论，第四部分为论文的总结。</p> <p><strong>第2节 考虑摄像机遮挡的质量感知覆盖与路径规划</strong>，我们考虑一个目标区域的动态无人机覆盖问题，其中每个无人机从地面控制站（GCS）开始，向前移动访问一组预定义的航路点。无人机在执行任务期间继续飞行，并在这些航路点拍摄图像。在访问了所有航路点后，无人机飞回地面军事系统。我们考虑一个周期性的感知场景：无人机重复上述步骤，通过在每一轮的航路点拍摄图像，它们提供对目标区域的定期观察。对于典型的分布式遥感应用，如远程监测和监视，无人机网络需要提供该区域的概况图像，在空间和时间分辨率方面具有令人满意的传感质量。</p> <p><em>2.1 覆盖和传感质量估计器</em><br> <em>2.2 航路点生成</em><br> <em>2.3 质量意识路径规划</em></p> <p><strong>第3节 绩效评估</strong>，通过Matlab仿真，从覆盖质量和路径规划质量两个方面对所提出的工作进行了评估。生成了两个tar-get区域：一个山区和一个城市区域，如图1所示。两个区域的面积均为250×250 m，分为1×1 m的区块。每个块的最小空间分辨率要求（S r_min）设置为8px/m，时间分辨率（全局截止时间）在200到600 S之间变化。相机传感和无人机特性的其他参数如表1所示。该遗传算法使用30个种群规模、0.4个变异概率和10,0 0个迭代次数来实现。</p> <p><em>3.1 覆盖性能</em>，包括以下2节：不同步长的覆盖性能，不同期限的覆盖性能<br> <em>3.2 路径规划节能</em><br> <em>3.3 优化算法分析</em></p> <p><strong>结论和今后的工作</strong>：在本文中，我们介绍了一种无人机网络的质量感知覆盖和路径规划方案，可以有效地监控几何复杂环境。利用一个考虑遮挡的摄像机感知模型，我们开发了一个航路点生成算法，以找到最佳的航路点集，以获得满意的空间分辨率覆盖目标区域。我们还为多个无人机设计了一个节能、有截止时间意识的路径规划解决方案来访问路径点。仿真结果表明，与传统的无人机覆盖和路径规划技术相比，所提出的方案可以通过更低的能量成本获得更好的覆盖性能。未来，我们计划向两个方向扩展我们的研究。首先，当所提出的方案在任务开始前规划航路点和无人机路径时，我们将研究在线调整策略，以保证在不可预测的情况下的感知质量。其次，需要有效的沟通机制，为最终用户提供满意的视觉观察。我们将在所提出的覆盖和路径规划框架下对感测图像的通信进行研究。在一组无人机部署用于观察某个区域后，我们将引入额外的中继无人机节点来协助图像传输，我们将为所有无人机提供图像质量和截止时间感知的通信解决方案。仿真平台将用于评估无人机网络中真实图像的传输。</p> <h2 id="_2007-基于机会学习的多无人机协同搜索"><a href="#_2007-基于机会学习的多无人机协同搜索" class="header-anchor">#</a> [2007]基于机会学习的多无人机协同搜索</h2> <p>9月16日阅，论文名称：Multi-UAV Cooperative Search Using an Opportunistic Learning Method，《Journal of Dynamic Systems Measurement and Control》，正文共10页，后面还有2页是附录，解释不确定度更新方程的推导，作者来自<em>塞浦路斯大学</em>，<a href="https://wws.lanzous.com/iI50Rgpjzte" target="_blank" rel="noopener noreferrer">论文查看<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a>。</p> <blockquote><p><strong>摘要</strong>：为完成复杂协调任务而设计的网络化多车辆系统控制是当前一个重要而富有挑战性的研究领域。研究了一个无人驾驶飞行器（UAV）在不确定环境中寻找感兴趣目标的协同搜索问题。基于两个相互依赖的任务，我们提出了一个用于协同搜索的无人机在线规划和控制框架：（1）通过新的传感器读数，增量更新作为环境表示的“认知地图”；（2）根据通过搜索获得的信息不断规划每辆车的路径。我们提出了合作搜索问题，并提出了一种基于机会主义合作学习方法的分散策略，通过让每一辆车在其路径规划过程中考虑其他车辆的行动来实现车辆之间的紧急协调。该策略考虑了飞行器的物理机动能力等约束条件，并考虑了环境的动态特性，生成了飞行器的物理可行路径。我们还对所开发的搜索策略进行了一些数学分析。我们的分析表明，这种策略保证了对环境的完全搜索，并且对无人机的部分损失具有鲁棒性。给出了任意策略搜索时间的下界和该策略的松弛上界。仿真结果验证了该策略的有效性。</p></blockquote> <p><strong>第1节 引言</strong>，近年来，越来越多的人开始关注使用无人驾驶飞行器（UAV）来执行各种军事和民用任务。这种基于团队的行动包括但不限于团队侦察和监视行动、战斗损失评估、太空探索和科学数据收集。无人机特别适用于对人类飞行员来说过于危险的任务。无人机相对于有人驾驶任务的潜在优势包括降低成本、避免飞行员损失和提高机动性。</p> <p>多无人机协同控制适用于多个无人机团队合作完成共同目标的场合。研究表明，与单独控制每一辆飞行器相比，自主式空中和地面车辆的协作团队能够提供更有效的作战能力来完成艰巨复杂的任务。实现这类多车辆系统的一个关键问题是开发一致有效的协调和控制算法来操纵每辆车，使整个车队能够产生复杂、适应性强和灵活的群体行为。协同控制问题包括协同任务分配、协同路径规划、协同搜索、协同会合、协同编队控制等。</p> <p>本文关注一组无人机在已知范围内移动的多飞行器协同搜索问题，寻找感兴趣的目标并收集环境信息。无人机只有有限的或不存在的关于环境中目标分布的先验信息。因此，它们需要使用传感器在环境中移动，以增量方式收集信息并定位目标。在哪里搜索的决策是由一个目标驱动的，即最大限度地收集环境信息作为搜索时间的函数。</p> <p>搜索的一个重要方面是充分有效地覆盖整个搜索区域，以便对目标进行定位。一些详尽的覆盖方法，如Zamboni搜索，确保无人机至少一次越过搜索区域的所有点。当环境是统一和静态的，没有移动目标和弹出威胁，并且无人机拥有无限时间和完美的目标识别传感器时，彻底搜索可能是最佳策略。然而，在许多情况下，时间或燃料限制可能不允许完全覆盖目标环境。此外，传感器的测量总是存在一定的不确定性，搜索区域中的一些“弹出式”威胁只有在无人机接近目标时才能被检测到。在这种情况下，无人机需要具备自主和自适应的路径规划能力，才能在最少的人为干预下完成任务。我们工作的主要动机是开发和分析一个系统化的协同搜索策略，以便在一个无人机团队中实现自主的协同路径规划。</p> <p>我们感兴趣的是无人机在分布式无监督模式下工作的能力；即无人机本身根据其对环境的了解来决定搜索的位置，而不依赖外部指导。因此，团队中的无人机可以继续搜索，即使团队中的一个或多个成员在任务完成前丢失，这使得这是一个稳健的策略。虽然车辆当然可以在不需要合作的情况下搜索环境，但是通过使用协作来减少重复工作，从而使搜索效率大大提高，在这种情况下，一些车辆可能会遵循相似的搜索路径并浪费搜索努力。因此，多车辆协同搜索的关键问题是使每一辆车选择足够不同的搜索路径。</p> <p>我们已经为多无人机协同搜索问题开发了一个通用框架，用于指导一组无人机协同搜索一个动态和不确定的环境，并报道了一种基于多目标代价函数和q步路径规划算法的递归协同搜索方法。在本文中，我们提出了一个更形式化的形式化的多飞行器协同搜索问题。本文提出了一种基于预测的协同搜索方法，其主要思想是让每一个无人机学习预测其周围其他飞行器的状态，并将这些预测应用于其路径规划过程中，从而尽可能快速地增加环境的整体信息。</p> <p>预测过程采用强化学习过程训练的前馈神经网络完成。替代的RL方法已被用于机器人和多智能体系统。我们考虑了集中式和分散式智能的问题，并提出了一种自适应预测过程，即无人机机会性地共享其预测器，以提高团队的整体性能。该策略考虑了飞行器的物理机动能力等约束条件，并考虑了环境的动态特性，生成了飞行器的物理可行路径。我们还对所开发的搜索策略进行了一些数学分析。我们的分析表明，这种策略保证了对环境的完全搜索，并且对无人机的部分损失具有鲁棒性。给出了任意策略搜索时间的下界和该策略的松弛上界。仿真结果表明了该方法的有效性。</p> <p>论文的其余部分结构如下。第2节回顾相关研究工作。第3节介绍了协同搜索的一般框架，这是本文研究工作的基础。第4节介绍了多车辆协同搜索问题的分散控制模型的建立。在此基础上，讨论了一种基于智能预测的路径规划方法，并在第5节中提出了一种机会合作学习（opportunistic cooperative<br>
learning，OCL）方法。第6节介绍了所提出的搜索策略Sec的一些数学分析。第7节介绍了所开发的机会主义学习算法。第8节报告并讨论模拟结果。第9部分是文章的最后一部分。</p> <p><strong>第2节 相关研究工作</strong>，搜索问题在许多军事和民用应用中都会出现，例如在公海或人口稀少地区的搜索和救援行动、搜寻先前发现的敌人目标的任务、寻找地雷的销毁任务以及寻找矿藏。已经提出了许多解决这类搜索问题的方法。</p> <p>搜索理论是在第二次世界大战期间搜救理论和实践发展的基础上发展起来的。搜索理论主要研究在一个由单元组成的环境中以最大化找到感兴趣对象的概率的方式分配搜索结果的问题。一般情况下，假设目标分布的一些先验知识是可用的，并且假定目标确实位于特定的搜索区域，那么将搜索所花费的时间与实际找到目标的概率相关联的“回报”函数也是可用的。搜索理论是运筹学中最成熟的领域之一，在这一领域已经取得了很大的进展。大多数定常目标问题的解已导出。对于运动目标问题，搜索理论的重点已从数学和解析解转移到算法求解。已经提出了许多启发式方法，这些方法可以得到“近似最优”解，见参考文献[21–23]。关于搜索理论的现状的详细回顾可以在参考文献中找到。到目前为止，搜索理论很少关注搜索者合作的问题，从搜索理论得到的解主要是理论上的，而不是实用的。例如，搜索理论通常要求搜索努力在单元之间是无限可分的，这就很难为飞行器生成物理上可行的飞行轨迹。</p> <p>合作搜索问题本质上是规划有效的搜索路径以获得最大的新信息。因此，车辆需要具有自主的协同路径规划能力才能执行协同搜索任务。协同路径规划问题在协同控制领域得到了广泛的研究关注。采用协同路径规划的无人机协同控制问题包括协同分类，协同攻击，协同会合，以及协同任务分配。在这些问题中考虑的协同路径规划涉及无人机到达目标或其他指定地点的时间或顺序。因此，路径规划问题被简化为寻找从无人机初始位置到目的地的可飞行路径。然而，这些面向目的地或点到点的路径规划方法不能直接用于搜索任务中涉及的路径规划，因为车辆没有指定的目的地，它们可能必须将所有不确定区域视为可能的目的地，以便收集信息。</p> <p>搜索路径规划问题与移动机器人覆盖路径规划问题有许多共同之处，即要求一个或多个移动机器人明确地越过一个有固定障碍物的未探测区域中的所有点，以完成一些任务，如清理地板、割草、打雷和收割。许多详尽的覆盖路径规划方法，如Zamboni搜索法，已经被开发出来，参考文献[36]提供了该领域主要结果的良好调查。虽然这些覆盖算法为无人机搜索路径的生成提供了一个很好的直观来源，但大多数算法没有考虑飞行器的约束和搜索环境的动态特性。例如，在许多情况下，时间或功率限制可能不允许无人机完全覆盖整个环境。物理机动性可以限制车辆的最小转弯半径，并禁止车辆进行严重的G形转弯，而大多数穷举覆盖算法都要求智能体按要求向任何方向移动。此外，在任务执行过程中，由于传感器精度不理想和弹出威胁等各种不确定性，环境和环境本身的信息可能会发生不可预测的变化，而许多覆盖算法都是基于具有静止障碍物的环境的假设。这些因素限制了覆盖算法在解决无人机协同搜索问题中的性能。</p> <p>合作搜索问题由于其在各种应用中的重要性，近年来引起了人们的广泛关注。只有在车辆进行搜索并获得必要的环境信息后，才有可能启动其他任务，如协同分类、协同攻击、协同交战。在文献[3]中，提出了一种指导无人机群协同搜索动态不确定环境的通用框架。其中搜索路径生成问题分为两个部分：在线环境建模过程和实时路径决策过程。考虑到各车辆组的决策协调，实现了各车辆之间的协调。在此基础上，提出了一种用于环境概率建模的贝叶斯地图构建方法，并在参考文献中讨论了一种实现团队自主性的协作学习方法。两种证据地图构建方法的比较见参考文献[40]。利用同一框架，在参考文献中提出了一种基于动态规划的协同搜索路径规划方法。[11,41–43]研究了一种基于k-最短路径算法的搜索路径生成方法。并在参考文献[44，45]中提出了一种博弈论搜索方案。文献[48]提出了一种应用最优搜索理论求解多车辆协同搜索问题的方法。参考文献[49]使用基于代理优化的分散控制算法解决协同搜索问题，以协调方式生成无人机搜索轨迹。一些穷举覆盖算法也被应用于解决协同搜索问题，其中参考文献[12]提出了先进的编队覆盖方法，可以对搜索过程中无人机的损失具有鲁棒性。</p> <p><strong>第3节 协同搜索框架</strong>，本节简要介绍了一个通用的协同搜索框架。图1所示为无人机执行协同搜索任务的在线规划和控制框架。在该框架下，无人机在计算制导轨迹时不考虑完整的动力学模型，而是采用两个过程进行制导和控制：高级路径规划器和低级实时轨迹生成器。路径规划器维护一个有关环境当前状态的信息库，并使用最优控制方法生成供车辆跟随的航路点路径<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>P</mi><mi>i</mi></msub><mo>(</mo><mi>t</mi><mo>)</mo></mrow><annotation encoding="application/x-tex">P_i(t)</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit" style="margin-right:0.13889em;">P</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.13889em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mopen">(</span><span class="mord mathit">t</span><span class="mclose">)</span></span></span></span>。航路点路径是指无人机必须经过的环境中的一系列大地坐标。为了给飞行器生成一条可行的飞行航路点路径，必须考虑飞行器的机动性约束，如有限转弯角和弹出威胁。在给定预定航路点路径的情况下，实时轨迹发生器利用飞行器的动力学模型生成执行器输入<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>u</mi><mi>i</mi></msub></mrow><annotation encoding="application/x-tex">u_i</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.58056em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">u</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>，使飞行器跟踪期望的轨迹<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>P</mi><mi>i</mi></msub><mo>(</mo><mi>t</mi><mo>)</mo></mrow><annotation encoding="application/x-tex">P_i(t)</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit" style="margin-right:0.13889em;">P</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.13889em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mopen">(</span><span class="mord mathit">t</span><span class="mclose">)</span></span></span></span>。本文在很大程度上忽略了车辆动力学问题，集中研究了路径规划器的设计问题。我们的重点是展示如何将每辆车的驻车信息与其他车辆的信息相结合，以便车辆团队能够协同工作以达到集团目标。</p> <p><img src="https://s1.ax1x.com/2020/09/17/wWhXnJ.png" alt="wWhXnJ.png"></p> <p>外环控制方案的设计分为两个基本功能，如图1的左框所示。首先，无人机利用接收到的传感器信息更新其信息库或认知地图，这是环境的一种表示，以及其他信息，如其位置和方向、其他车辆的位置和方向、剩余燃油。这将被称为无人机的更新功能。根据它的信息库，无人机计算出一条需要遵循的路径。这被称为无人机的决策功能。车辆使用笛卡尔网格形式的认知地图作为其环境表示，每个单元被分配一个值，表示车辆对相应区域内目标/威胁分布的了解。无人机在搜索环境时，通过一种证据传感器融合算法将车辆的传感器读数合并，从而不断更新其认知地图，并考虑传感器信息的不精确性和不确定性。随着认知地图的逐步建立，每个无人机的航路点路径决策函数利用其地图来估计搜索环境中某些区域的期望回报，并生成一条可行的路径来指导飞行器的搜索。这是通过一个抽象的无人机动力学模型来实现的，该模型考虑了飞行器的机动性约束，然后定义了一个最优控制问题，并以此来生成最大回报路径。</p> <p>在这种情况下，我们假设每个无人机所作的制导控制决策是自主的，在这种意义上，没有无人机告诉其他无人机要做什么，无人机之间也没有任何协商。每个无人机只需从其他飞行器或剩余飞行器的一个子集接收有关环境的信息，并做出自己的决策，这些决策通常基于增强全球目标，而不仅仅是自己的目标。因此，本文提出的框架可以被看作是一个被动的合作或可持续的协调框架，而不是主动合作，在这种框架中，无人机可以积极地协调它们的决策和行动。为了简单起见，我们假设这些飞行器在不同的高度飞行，这样当两个或更多的飞行器同时飞入同一个单元时，它们不会发生碰撞。因此，我们并没有在这个框架中明确地解决车辆之间的碰撞避免问题。</p> <p><strong>第4节 合作搜索问题公式化</strong>，使用第3节中讨论的通用框架，给出了协同搜索问题的理论推导，包括环境模型、车辆动力学模型、地图生成方法、协同路径规划决策过程。</p> <p><em>4.1 环境</em><br> <em>4.2 无人机简化动力学模型</em><br> <em>4.3 无人飞行器信息库</em><br> <em>4.4 航路点路径决策过程</em></p> <p><strong>第5节 协同搜索路径规划策略</strong>，在本节中，我们描述了一个路径选择决策函数<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>h</mi><mo>[</mo><mrow><mi mathvariant="bold">x</mi></mrow><mo>(</mo><mi>t</mi><mo>)</mo><mo>]</mo></mrow><annotation encoding="application/x-tex">h[\mathbf{x}(t)]</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mord mathit">h</span><span class="mopen">[</span><span class="mord textstyle uncramped"><span class="mord mathbf">x</span></span><span class="mopen">(</span><span class="mord mathit">t</span><span class="mclose">)</span><span class="mclose">]</span></span></span></span>，用于无人机执行协同搜索任务。决策函数基于与无人机所遵循的每条可能路径相关的预期回报。</p> <p><em>5.1 奖励估算</em><br> <em>5.2 单元格占用率估计</em></p> <p><strong>第6节 协同搜索方法的性能分析</strong>，在这一部分中，我们将对第5节开发的合作搜索策略进行一些数学分析。具体来说，我们证明了算法的完备性，并给出了算法搜索时间的上下界。</p> <p>协同搜索问题实质上等同于为无人机推导搜索路径，以尽可能快地降低总的不确定性。对合作搜索策略的分析考虑了几个特点。第一个明显的特点是，通过使用指定的策略，无人机确实可以完成任务，并完全搜索环境中的每个未知单元。我们把这个特性定义为完备性，并用下面的命题来证明算法的完备性。</p> <p><strong>第7节 机会学习算法</strong>，本节讨论用于估计占用信息的学习算法。如前所述，无人机<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>i</mi></mrow><annotation encoding="application/x-tex">i</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.65952em;"></span><span class="strut bottom" style="height:0.65952em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit">i</span></span></span></span>使用三元神经网络预测<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>v</mi><mrow><msub><mi>k</mi><mi>i</mi></msub></mrow></msub><mo>(</mo><mi>t</mi><mo>+</mo><mn>2</mn><mo>)</mo></mrow><annotation encoding="application/x-tex">v_{k_i}(t+2)</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1.005em;vertical-align:-0.255em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit" style="margin-right:0.03588em;">v</span><span class="vlist"><span style="top:0.15000000000000002em;margin-right:0.05em;margin-left:-0.03588em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord"><span class="mord mathit" style="margin-right:0.03148em;">k</span><span class="vlist"><span style="top:0.15em;margin-right:0.07142857142857144em;margin-left:-0.03148em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-scriptstyle scriptscriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mopen">(</span><span class="mord mathit">t</span><span class="mbin">+</span><span class="mord mathrm">2</span><span class="mclose">)</span></span></span></span>，每个子网络预测一个目标单元的两步占用率。这是通过Q学习程序，使用在时间<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>t</mi><mo>+</mo><mn>2</mn></mrow><annotation encoding="application/x-tex">t+2</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.64444em;"></span><span class="strut bottom" style="height:0.72777em;vertical-align:-0.08333em;"></span><span class="base textstyle uncramped"><span class="mord mathit">t</span><span class="mbin">+</span><span class="mord mathrm">2</span></span></span></span>可用的真实占用值<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>v</mi><mrow><msub><mi>k</mi><mi>i</mi></msub></mrow></msub><mo>(</mo><mi>t</mi><mo>+</mo><mn>2</mn><mo>)</mo></mrow><annotation encoding="application/x-tex">v_{k_i}(t+2)</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1.005em;vertical-align:-0.255em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit" style="margin-right:0.03588em;">v</span><span class="vlist"><span style="top:0.15000000000000002em;margin-right:0.05em;margin-left:-0.03588em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord"><span class="mord mathit" style="margin-right:0.03148em;">k</span><span class="vlist"><span style="top:0.15em;margin-right:0.07142857142857144em;margin-left:-0.03148em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-scriptstyle scriptscriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mopen">(</span><span class="mord mathit">t</span><span class="mbin">+</span><span class="mord mathrm">2</span><span class="mclose">)</span></span></span></span>。<br>
基本上，神经网络学会对给定的<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>s</mi><mi>i</mi></msub><mo>(</mo><mi>t</mi><mo>)</mo></mrow><annotation encoding="application/x-tex">s_i(t)</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">s</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mopen">(</span><span class="mord mathit">t</span><span class="mclose">)</span></span></span></span>进行越来越精确的估计<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>v</mi><mrow><msub><mi>k</mi><mi>i</mi></msub></mrow></msub><mo>(</mo><mi>t</mi><mo>+</mo><mn>2</mn><mo>)</mo></mrow><annotation encoding="application/x-tex">v_{k_i}(t+2)</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1.005em;vertical-align:-0.255em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit" style="margin-right:0.03588em;">v</span><span class="vlist"><span style="top:0.15000000000000002em;margin-right:0.05em;margin-left:-0.03588em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord"><span class="mord mathit" style="margin-right:0.03148em;">k</span><span class="vlist"><span style="top:0.15em;margin-right:0.07142857142857144em;margin-left:-0.03148em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-scriptstyle scriptscriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mopen">(</span><span class="mord mathit">t</span><span class="mbin">+</span><span class="mord mathrm">2</span><span class="mclose">)</span></span></span></span>。利用Levenberg-Marquardt过程对神经网络的权值进行了修正。</p> <p>集中学习。在这种情况下，只有一个三元神经网络。所有的无人机都将他们对<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>v</mi><mrow><msub><mi>k</mi><mi>i</mi></msub></mrow></msub><mo>(</mo><mi>t</mi><mo>+</mo><mn>2</mn><mo>)</mo></mrow><annotation encoding="application/x-tex">v_{k_i}(t+2)</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1.005em;vertical-align:-0.255em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit" style="margin-right:0.03588em;">v</span><span class="vlist"><span style="top:0.15000000000000002em;margin-right:0.05em;margin-left:-0.03588em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord"><span class="mord mathit" style="margin-right:0.03148em;">k</span><span class="vlist"><span style="top:0.15em;margin-right:0.07142857142857144em;margin-left:-0.03148em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-scriptstyle scriptscriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mopen">(</span><span class="mord mathit">t</span><span class="mbin">+</span><span class="mord mathrm">2</span><span class="mclose">)</span></span></span></span>的真实观测值传送给该网络，该网络计算所有相应预测的误差并将其用于学习。我们可以说，团队中的所有无人机都拥有与“大脑”相同的三方神经网络，并利用他们所有的经验来训练大脑。</p> <p>分散学习。在这种情况下，每一个无人机都有自己的三元神经网络，使用自己的预测和观测来训练。无人机组之间没有经验分享。</p> <p><strong>第8节 模拟结果</strong>，在这一部分中，我们给出了一些仿真结果来证明OCL搜索策略的有效性。相对于CL和DL方法，我们考虑了复制概率对系统性能的影响。在仿真研究中，我们主要探讨了两个问题：</p> <ul><li>比较CL方法和DL方法的性能；</li> <li>确定在DL场景下，不成功的无人机机会主义地复制优势预测值是否会提高性能和学习速度</li></ul> <p>虽然，在实践中，无人机会在搜索时学习，但我们使用了两个阶段的方法来评估各种方法的性能。在训练阶段，对系统进行训练，每一步修改神经网络权值。训练是在实际环境中使用搜索来完成的，但是访问过的单元的不确定性值在访问几次之后会反复重置为1，从而为学习创造了更大的机会。训练阶段之后是一个评估阶段，在这个阶段，经过训练的无人机在没有任何进一步学习的情况下，在<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>n</mi><mrow><mi>e</mi><mi>v</mi><mi>a</mi><mi>l</mi></mrow></msub></mrow><annotation encoding="application/x-tex">n_{eval}</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.58056em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">n</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord mathit">e</span><span class="mord mathit" style="margin-right:0.03588em;">v</span><span class="mord mathit">a</span><span class="mord mathit" style="margin-right:0.01968em;">l</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>步内搜索环境。这说明了随着时间的推移，使用不同算法训练的无人机，环境的不确定性是如何减少的。本文给出了基于贪婪估计的搜索策略的结果。</p> <p><strong>结论</strong>：协同决策与控制策略的设计是网络化多无人机系统成功部署的关键问题之一。本文在已有的多无人机协同搜索框架的基础上，利用离散元胞空间对协同搜索问题进行了数学描述，并提出了一种智能学习方法来实现多飞行器之间的协同搜索。</p> <p>在所提出的协同搜索模型中，无人机通过学习学习用RL训练的神经网络来预测周围其他无人机的行为。我们比较了CL的搜索性能，其中所有的无人机使用一个中央训练的自适应预测器，与DL情况下，每一个无人机有自己的预测器。虽然集中式方法提供了更好的性能，但这是以效率和健壮性为代价的。为了获得这两种方法的优点，我们提出了OCL方法，即无人机可以单独学习，但也可以分享这种学习的好处。由于这种合作，成功的预测器往往会选择性地在无人机群体中扩散，而不会强加单一集中式预测器的刚性。<br>
仿真结果表明，OCL方法在保留DL优点的同时，可以提供接近CL的预测性能。</p> <p>研究结果表明，无人机小组可以按照我们的策略完成搜索任务，并对搜索性能进行了数学分析。然而，仍有许多问题有待解决，如合作加速的理论分析和搜索时间的严格上界的推导。有关这些问题的研究工作正在进行，并将在今后的报告中提出。</p> <h2 id="_2013-基于时间规划的自主搜索与跟踪"><a href="#_2013-基于时间规划的自主搜索与跟踪" class="header-anchor">#</a> [2013]基于时间规划的自主搜索与跟踪</h2> <p>9月22日阅，论文名称：Autonomous Search and Tracking via Temporal Planning，会议名称《第二十三届自动化计划与调度国际会议》，正文共8页，作者来自<em>伦敦国王学院</em>，<a href="https://wws.lanzous.com/iDpxCguo1ja" target="_blank" rel="noopener noreferrer">论文查看<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a>。</p> <blockquote><p><strong>摘要</strong>：搜索与跟踪（Search And Tracking，SAT）是指搜索一个移动目标并在发现后对其进行跟踪的问题。由于这一问题在搜索、搜索和监视行动中有着重要的应用，最近人们越来越关注为无人机配备自主卫星能力。最先进的SAT方法依赖于估计目标状态的概率密度函数，并在较短的规划时间内（通常是一步一步的前瞻）以贪婪的方式解决搜索控制问题。这些技术计算量大，不适合处理复杂问题。在这篇论文中，我们提出了一种新的SAT方法，它允许我们处理大的地理区域，复杂的目标运动模型和长期的操作。我们的解决方案是在目标出现时对其进行反应性跟踪，并使用高性能的自动规划工具规划恢复策略，在每次目标丢失时重新定位目标。规划问题包括决定在哪里搜索以及使用哪些搜索模式，以便最大限度地提高恢复目标的可能性。我们展示了实验结果，证明了我们的方法的潜力。</p></blockquote> <p><strong>第1节 引言</strong>，由于无人机（UAV）在军事行动中的作用越来越大，其使用近来引起了媒体的极大关注。然而，军用无人机目前是遥控的，不一定是第一种完全自主飞行的无人机（ASTRAEA Programme 2012）。无人机有许多潜在的民用应用，包括监视、森林火灾监视、农业任务和搜索操作。在本文中，我们考虑在卫星任务中使用无人机，其中作战目标是一辆陆基车辆，它将在各种地形（城市和农村）中跟踪其航向。我们研究了这样一个任务分解成不同阶段的方式，并探讨了计划在这些阶段中的作用。我们确定了这项任务中出现的规划问题，并展示了如何使用通用规划技术对其进行建模和解决。我们评论了通用计划在这个角色中的好处，并展示了它在模拟中的表现，展示了显示其潜在有效性的结果。</p> <p>无人机的开发和生产是一个不断增长的领域。在将这项技术从纯军事功能转向更广泛地利用自动驾驶车辆方面，一个重大挑战是需要在民航规则的法律框架内进行认证。这一挑战有点自相矛盾，因为认证（目前建立在一个假设基础上，一个人类飞行员将负责一架飞机）将取决于建立对自主无人机技术的信任，这需要记录许多小时的安全自主飞行，而记录小时数需要许可才能在有趣的空气中飞行空间。突破这一明显僵局的过程的一部分是建立自主飞行控制系统，这些系统具有高度的可预测性，并且易于理解和验证。这其中的一个主要因素是稳健和可预测控制器的开发，但随着控制水平越来越被视为一个众所周知的问题，注意力正转向控制与高层决策和飞行计划的整合。</p> <p><strong>第2节 搜索和跟踪任务</strong>，我们在本文中考虑的卫星任务是一个目标是一个车辆（例如，一辆汽车）正在寻找和跟踪通过一个混合的城市和农村景观。我们考虑一个无人机，我们假设飞行器控制器是鲁棒的，可以依赖于提供基本的飞行控制来维持水平飞行、转弯和定位。</p> <p>无人机被假定装备有成像系统，可以观察到目标。假设观测容易受到误差和地形干扰。在我们的模型中，在每个观察周期内观察到目标的概率（可被成像仪视为“帧捕获”）取决于最近观察到目标的时间、目标实际位置与目标预测位置之间的距离、目标的速度，地形和成像系统的模式。我们假设成像仪有两种模式：一种是广角模式，用于在当前未观察到目标的情况下增加被扫描的区域，其代价是在图像的任何特定部分成功观察到目标的概率较低；另一种是窄角度模式，在这种模式下，观察区域减小，但发现目标的概率更高。地形的作用是降低在城市、郊区、森林和山区发现目标的概率，而在崎岖或开阔的农村地区，发现目标的概率较高。观察区内移动速度更快的目标更容易被发现。</p> <p>在这项工作中，我们不考虑目标的重大规避行为——一旦目标意识到观察者，其速度会变得稍微不稳定（比道路的典型速度快和慢），但我们不考虑试图离开道路，利用地形来隐藏或偏离原计划路径。当然，这些都是目标行为的合理可能性，我们打算在今后的工作中加以探讨。</p> <p>这次任务的目的是跟踪目标到达目的地。一般来说，SAT任务分为两个阶段进行，这两个阶段交替进行，直到目标停止或直到观察者承认它已经不可避免地失去了目标。这些阶段是跟踪，即无人机在目标上空以标准模式飞行，观察其进展，以及在无人机失去目标并进行一系列旨在重新发现目标的机动飞行中进行的搜索。一旦目标被重新发现，无人机将切换回跟踪模式。</p> <p>跟踪是由一个反应式控制器管理的：问题只是找到一个路线，最大限度地观察目标。一般来说，无人机的飞行速度比公路车辆快得多，但固定翼无人机无法悬停。因此，固定翼无人机在跟踪模式下的飞行轨迹是一个以目标为中心的固定半径圆。半径取决于无人机的能力：不能大于成像设备的射程，也不能小于无人机当前速度下的转弯半径。我们假设无人机在这两个极端之间（这是我们模拟的参数）的中程圈内飞行。事实上，当目标移动时，圆圈也随之移动，因此无人机的飞行轨迹描述了一种在地面上螺旋上升的模式。</p> <p>如果无人机无法观察到目标，它必须尝试重新发现它。如何做到这一点取决于观察者上次观察到目标的时间。在失去目标后的短时间内，无人机可以简单地跟踪目标的预测位置，因为目标的移动速度不足以明显偏离该预测。然而，经过一段时间后（其长度取决于目标的速度、成像设备的弧度、观测概率以及可能的地形），将需要作出更系统的努力，通过将搜索引导到特定的地点来重新发现目标。</p> <p>在这一点上，问题可以看如下：当前状态包括关于最后已知的目标位置和速度的信息，跟踪目标期间的平均速度，地形图和无人机的当前位置。无人机可以飞越地形寻找目标。可以将此任务视为计划问题（参见图1），其中搜索计划由一组候选搜索模式构成，这些模式可以按顺序排列，以尝试优化重新发现目标的可能性。如果在执行该搜索计划时，目标被重新发现，观察者将切换回跟踪模式。</p> <p><img src="https://s1.ax1x.com/2020/09/22/wX3lT0.png" alt="wX3lT0.png"></p> <p><strong>第3节 相关工作</strong>，在过去的十年里，人们对高效卫星的兴趣与日俱增，它在搜索和侦察、监视、边防巡逻和侦察行动中有着实际的应用。一种已经被广泛探索的方法依赖于贝叶斯技术的使用。研究最初分别考虑了搜索和跟踪这两个领域，并将重点放在单一目标和单一车辆的情况下。然而，这一领域发展迅速。提出了一种统一的SAT方法，并探索了许多不同的设置，包括：（1）单个/多个目标；（2）单个/多个车辆；以及（3）集中/分散策略。</p> <p>SAT的概率方法依赖于递归贝叶斯估计（Recursive Bayesian Estimation，RBE）技术，在已知目标先验分布和概率运动模型的前提下，递归更新和预测目标状态相对于时间的概率密度函数（Probability Density Function<br>
，PDF）。通常采用的目标运动模型由一个简单的离散时间方程表示，即目标在时间步长<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>k</mi><mo>+</mo><mn>1</mn></mrow><annotation encoding="application/x-tex">k+1</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.69444em;"></span><span class="strut bottom" style="height:0.77777em;vertical-align:-0.08333em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.03148em;">k</span><span class="mbin">+</span><span class="mord mathrm">1</span></span></span></span>时的状态是目标在第<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>k</mi></mrow><annotation encoding="application/x-tex">k</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.69444em;"></span><span class="strut bottom" style="height:0.69444em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.03148em;">k</span></span></span></span>步的状态的函数，第<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>k</mi></mrow><annotation encoding="application/x-tex">k</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.69444em;"></span><span class="strut bottom" style="height:0.69444em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.03148em;">k</span></span></span></span>步为目标控制输入，<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>k</mi></mrow><annotation encoding="application/x-tex">k</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.69444em;"></span><span class="strut bottom" style="height:0.69444em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.03148em;">k</span></span></span></span>步为系统噪声，系统噪声对应于环境对目标的影响。尽管Bourgault等人讨论了一些可能影响目标运动模型的硬约束和软约束，如障碍物、力场和地形拓扑，通常假设目标受到外部干扰，而不是根据自身意图移动。例如，无人机可以搜索和跟踪随风飘流的救生筏。</p> <p>RBE技术分为两个阶段：更新和预测。更新阶段计算当前状态的后验分布，给出状态的先验估计（基于先前观测的序列）和当前时刻的新观测值。预测阶段利用当前状态的后验密度和目标的运动模型计算下一个状态的概率密度。从计算的角度来看，实现RBE的这两个阶段，本质上需要在目标空间的任意点上对函数求值，并在目标空间上对函数进行积分。由于这些操作的计算成本很高，人们已经探索了许多不同的方法来有效地计算它们，包括基于网格的方法（Bourgault、Furukawa和Durrant-Whyte 2006）、粒子过滤器（Chung和Furukawa 2006）、基于元素的技术（Furukawa、Durrant-Whyte，和Lavis 2007）和混合粒子元方法（Lavis和Furukawa 2008）。</p> <p>基于计算出的PDF，搜索控制问题在很短的规划时间内以贪婪的方式得到解决，通常采用一步前瞻视界。<br>
这种短视规划方法用于控制该技术的计算成本，随着前瞻步数的增加、搜索区域的大小或搜索空间的维数的增加，这种方法很快变得棘手。一个统一的目标函数用于搜索和跟踪，允许车辆从一种模式切换到另一种模式，同时保持在前一阶段获得的信息。</p> <p>基于概率的SAT已被证明在以下问题上是成功的：静止目标或在小地理区域内移动的目标、目标不显示任何规避或有意行为的简单运动模型、静态搜索空间（尽管Lavis最近提出了动态重新配置状态空间的技术）&amp;Furukawa（2008年）），以及短期任务。尤其是在大范围的空间运动中，由于目标在空间上的复杂运动，特别是在大范围的空间内，由于目标的复杂运动状态，特别是在大范围的空间内，目标的精确定位都需要很高的计算成本。</p> <p>从理论的角度来看，我们将SAT列为一个规划问题（见第4.1节）类似于带时间窗的定向运动问题（OPTW）（Kantor和Rosenwein 1992）。在一个经典的定向问题中，给出了一组具有相关奖励的顶点，以及一个起始点和一个结束点。对于所有的顶点，tij从顶点vi到顶点vj所需的时间量是已知的。最后，建立了最大时间预算Tmax。操作的目标是确定一条在可用时间Tmax内访问顶点子集的路径，以使所收集的总奖励最大化。窗口中的一个变量只能访问窗口中的一个顶点。OPTW是一个困难的组合问题，因为它涉及三种类型的决策：（i）要访问的顶点的分配；（ii）要访问的顶点的排序；以及（iii）对所选顶点集的访问调度。考虑到我们的规划问题，搜索模式集对应于OPTW问题的顶点集，而搜索模式处于活动状态的时隙对应于OPTW时间窗口。<br>
与OPTW一样，我们还希望在可用时间内（受最新可能搜索窗口的限制）最大化总奖励。然而，在我们的例子中，与OPTW不同的是，规划者可以选择多次访问每个位置，并需要决定在每个位置使用哪种搜索模式。</p> <p>在计划的背景下，OP被用来提供关于目标和目标顺序的合适的启发式建议，处理超额认购问题的规划师应该考虑这些建议（Smith 2004）。</p> <p><strong>第4节 按计划搜索</strong>，如果无人机观察者在跟踪目标位置的短时间内失去了目标，它必须遵循搜索策略试图重新发现目标。如第3节所述，Furukawa等人。（2012）提出并探索了一种基于目标预测位置建模，然后控制无人机以最大化重新发现期望的目标搜索方法。他们的方法为无人机生成本地控制指令，对目标的相对细粒度预测行为做出响应。虽然原则上，目标预测行为的概率模型可以在受限区域内构建（Mathews、Waldock和Paraskevaides 2010），但当该技术应用于更大的，更复杂的问题，其中考虑了高度约束和复杂的路网结构。相反，我们建议一种更容易处理的方法是利用标准的搜索模式，并将其作为搜索计划的组成部分，以最大限度地提高重新发现目标的期望。</p> <p>我们考虑两种标准的搜索模式：一种是螺旋式的，从一个大的圆形区域的中心开始，向外螺旋到某个最大半径；另一种是在矩形区域上的割草机模式。前一种模式适用于覆盖高密度道路网区域，尤其是在城市或郊区地形中，而在试图搜索覆盖主要道路和一些可能的支路的较长路段时，后者非常有用。使用这些标准模式的一个重要好处是，它们是公认的搜索模式，无人机飞行在遵循这些模式的同时是可预测和可识别的，支持建立对自主无人机行为的信任和信心。</p> <p>因此，挑战在于决定将这些搜索模式部署在何处。一种可能性是使用一种固定的策略，简单地在目标丢失的区域飞行这些模式的一些标准配置。一个简单的例子是，在预计目标当前所在的区域上空飞行一个螺旋，它将稳定地扩展到包括目标在搜索过程中可能到达的所有区域，然后是一系列螺旋形或剪草机，向目标似乎要前进的方向延伸，从城市或郊区的螺旋形开始，在更多的农村地区，以道路为中心，改用割草机。这一固定政策是由我们的行业合作者向我们提出的，用于比较。</p> <p>一个更有趣的策略是将搜索模式的选择问题视为一个规划问题：每个搜索模式都可以被分配一个与在该区域的搜索中找到目标的期望值相对应的值。我们将讨论如何在短时间内估算出这个值，但我们注意到，这是一个时间函数，因为在距离最后一个已知位置较远的区域内，目标不会被发现，直到目标到达该区域的时间足够长，但一旦经过足够的时间，目标不太可能在该区域内被发现（除非该区域包括目标的目的地）。无人机可以选择一系列的搜索模式，将它们与一系列的飞行路径连接起来，以最大化重新发现的累积期望值。这个问题与第3节中描述的具有时间依赖性奖励的定向运动问题非常相似（Kantor和Rosenwein 1992），尽管有两个重要的区别：一个是一个区域的奖励可以多次申请（尽管下面会进一步讨论一些附加条件），以及，与定向问题的计划不同，一旦目标被重新发现，搜索计划的执行就会终止。</p> <p>这个规划问题有一些有趣的特点：尽管情况中存在固有的不确定性，但问题是确定性的，因为不确定性产生于目标的位置，并且，如果找到目标，计划就不再相关。<br>
因此，该计划完全是在目标尚未被发现的前提下制定的。与直觉相悖的是，“计划失败”对应的是找到目标的情况，与计划所依据的假设背道而驰。然而，当这个假设失败时，计划就变得无关紧要，无人机将切换回跟踪模式。</p> <p>我们利用无人机跟踪目标预测位置的周期来进行规划。问题没有目标，但是计划度量根据找到目标的累积期望来度量计划的价值。这类问题的一些例子以前已经被考虑过（例如，在第三届国际规划竞赛（Long and Fox 2003）中使用的卫星观测问题的一个变体具有这种特性），典型的情况是基准规划人员生成空计划，而忽略了指标。我们在下面讨论我们对这个问题的管理。</p> <p><em>4.1 规划问题</em>，搜索问题的领域模型有一个非常简单的基本结构：有一个飞行动作可以让无人机从一个航路点飞到另一个航路点，还有一个动作允许它执行每一个基本的搜索模式。我们使用螺旋搜索和大小割草机，尽管其他模式可以很容易地添加。搜索模式动作都有相似的形式：每个动作都有一个进入航路点和一个退出航路点，其效果除了移动无人机外，就是增加奖励（即找到目标的累积期望值）。操作是持续的，它们的持续时间在问题实例中是固定的，是执行相应搜索的正确（计算的）值。只能执行搜索模式，使其与目标可能位于模式所覆盖区域的时段一致。这是通过考虑目标的最小和最大合理速度以及距离目标最近一次观察到的距离来计算的。奖励更为复杂，下面将详细讨论，但问题实例使用时间依赖函数将奖励与模式a相关联。</p> <p>作为PDDL2.1中搜索行为建模的一个例子，下面是对doSpiral操作的描述，它指定了螺旋式搜索模式的位置和可用性、完成它所需的时间以及可用的奖励。</p> <p><img src="https://s1.ax1x.com/2020/09/22/wX8DDs.png" alt="wX8DDs.png"></p> <p>如果搜索模式是飞行的，但没有找到目标，有两种可能的解释：目标不在模式中，或者尽管目标存在，搜索仍未能找到目标。第二种情况可能是由于观察者的转向搜索弧与目标运动的同步性差，或者由于成像仪在目标穿过搜索弧的情况下未能发现目标。然而，第二次搜索模式的期望回报应该降低，以反映在第一次搜索没有找到目标的情况下，在该区域中可以找到目标的条件概率低于在该区域中可以找到目标的概率。在大多数情况下，由于奖励函数的时间依赖形式，如果在任何情况下重复搜索模式，则搜索模式所需的时间将导致对该模式的奖励减少，但可以使用修改的域模型来解释减少的条件概率：</p> <p><img src="https://s1.ax1x.com/2020/09/22/wX8c5V.png" alt="wX8c5V.png"></p> <p>对模式的奖励进行折扣的机制有点复杂，这是因为时间相关的奖励函数是由问题规范中的定时初始流来管理的，这些初始流会随着时间的推移而改变模式的奖励。函数的形状被构造成一个近似的提升高斯分布，在目标可能到达搜索区域之前没有奖励，在目标不可能仍然存在于该区域之后没有奖励（在整个接近和通过该区域时，尽可能缓慢地行驶）。在这两个极端之间，如果以平均速度驾驶，奖励将在目标位于搜索模式中心的点处达到峰值。通过在分布的阶跃函数逼近中增加或减少中间点，可以对模型进行修正。我们还用连续线性近似法进行了实验，使用附加动作来创建必要的奖励函数，但是，这在没有增加任何实际利益的情况下显著地使计划问题复杂化（用于建立奖励函数模型的行动是人为的行动，规划者被迫将其纳入计划中，以实现必要的奖励功能，而规划者则被迫发现这些人为行动的组织以及用于执行搜索的实际操作）。</p> <p>对模式的奖励进行折扣的机制有点复杂，这是因为时间相关的奖励函数是由问题规范中的定时初始流来管理的，这些初始流会随着时间的推移而改变模式的奖励。函数的形状被构造成一个近似的提升高斯分布，在目标可能到达搜索区域之前没有奖励，在目标不可能仍然存在于该区域之后没有奖励（在整个接近和通过该区域时，尽可能缓慢地行驶）。在这两个极端之间，如果以平均速度驾驶，奖励将在目标位于搜索模式中心的点处达到峰值。通过在分布的阶跃函数逼近中增加或减少中间点，可以对模型进行修正。我们还用连续线性近似法进行了实验，使用附加动作来创建必要的奖励函数，但是，这在没有增加任何实际利益的情况下显著地使计划问题复杂化（用于建立奖励函数模型的行动是人为的行动，规划者被迫将其纳入计划中，以实现必要的奖励功能，而规划者则被迫发现这些人为行动的组织以及用于执行搜索的实际操作）。</p> <p>为了确保规划器不会在没有相关奖励的情况下利用搜索模式，这些模式只在分布为正的期间激活，使用在适当时间断言和收回的定时初始字面值（TIL）。因此，奖励被建模为一系列<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>n</mi></mrow><annotation encoding="application/x-tex">n</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.43056em;"></span><span class="strut bottom" style="height:0.43056em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord mathit">n</span></span></span></span>次，<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>t</mi><mn>0</mn></msub></mrow><annotation encoding="application/x-tex">t_0</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.61508em;"></span><span class="strut bottom" style="height:0.76508em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">t</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathrm">0</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>到<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>t</mi><mi>n</mi></msub></mrow><annotation encoding="application/x-tex">t_n</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.61508em;"></span><span class="strut bottom" style="height:0.76508em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">t</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">n</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>。在每个<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>t</mi><mi>i</mi></msub></mrow><annotation encoding="application/x-tex">t_i</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.61508em;"></span><span class="strut bottom" style="height:0.76508em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">t</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>，TIL断言间隔<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mo>[</mo><msub><mi>t</mi><mi>i</mi></msub><mo separator="true">,</mo><msub><mi>t</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>]</mo></mrow><annotation encoding="application/x-tex">[t_i,t_{i+1}]</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.75em;"></span><span class="strut bottom" style="height:1em;vertical-align:-0.25em;"></span><span class="base textstyle uncramped"><span class="mopen">[</span><span class="mord"><span class="mord mathit">t</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">i</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mpunct">,</span><span class="mord"><span class="mord mathit">t</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord mathit">i</span><span class="mbin">+</span><span class="mord mathrm">1</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mclose">]</span></span></span></span>的奖励函数的值，在初始状态下奖励被设置为0，在<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>t</mi><mi>n</mi></msub></mrow><annotation encoding="application/x-tex">t_n</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.61508em;"></span><span class="strut bottom" style="height:0.76508em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">t</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">n</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>时由TIL重置为0。该模式仅在这段时间内被视为动作，所以一次TIL（active ?p） 是为模式?p在<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>t</mi><mn>0</mn></msub></mrow><annotation encoding="application/x-tex">t_0</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.61508em;"></span><span class="strut bottom" style="height:0.76508em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">t</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathrm">0</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>时刻增加，在<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>t</mi><mi>n</mi></msub></mrow><annotation encoding="application/x-tex">t_n</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.61508em;"></span><span class="strut bottom" style="height:0.76508em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">t</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">n</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>时刻删除。</p> <p><em>4.2 搜索模式和报酬估算</em>，要为我们的计划问题创建初始状态，我们必须管理两个任务。首先，我们必须确定候选搜索模式，其次我们必须为它们分配适当的值函数。第一项任务之所以困难，是因为有无限多的模式可以使用，而第二项任务则因为缺乏对目标意图的了解而变得困难。</p> <p>我们首先要考虑的是有限时间内规划者能够合理地解决的问题是有限数量的规划问题。因此，我们通过随机选择一组形状（圆形表示螺旋，大小矩形区域用于割草机）并将其放置在常规搜索区域，从而生成可能的搜索模式样本。这其中有几个偏差因素。首先，我们使用一个圆形扇区作为我们的一般搜索区域，该扇区以目标的最后已知位置为中心，向外延伸，其对称轴与目标在观察目标期间的平均方位对齐。扇区向外延伸数公里（确切的距离是一个参数——我们在下面的模拟报告中对数值的选择进行了评论），其值取决于扇区中包含的总面积以及在给定区域内搜索模式所需的相对时间。有一个点，目标可能出现的区域比无人机可以搜索的区域大得多，在目标可能存在的时间段内，找到目标的期望值减小到可以忽略不计的值。扇区对射角也是一个参数，反映了目标航向的不确定性程度。一般来说，目标会沿着它所使用的道路所施加的方向前进，但随着时间的推移，平均方位角会向从起点到终点的方向收敛。观察目标的时间越长，这种收敛就越近，尽管目标的路径始终受道路网络的约束。</p> <p>一旦相关的扇区被识别出来，我们就使用分布在该扇区上的概率分布来采样点。该分布基于整个路段的道路密度，通过使用细网格网格和计算每个网格单元内重要道路的数量、地形类型（城市、郊区、山区、森林，以及距离对称轴和目标最后已知位置的距离。分布随距原点的距离线性衰减，远离对称轴呈线性衰减，并由地形类型和道路密度的值加权。同样，所有这些值都是可以调整的参数，我们采用了我们认为合适的值。尽管图案的密度从原点开始衰减，但由于可供选择的相对区域与距原点的距离成正比，因此效果将被禁用。</p> <p>然后，我们为每个点决定要使用的模式类型：我们倾向于在最接近原点的搜索部分使用螺旋线，螺旋线可以很好地覆盖可能找到目标的区域，在农村地区或道路密度较低的地区使用割草机，螺旋线可能会覆盖搜索中价值不大的重要领域。对于缓和曲线，我们还根据该点的扇区宽度和路网密度选择半径。对于割草机，我们还要选择方向，然后选择宽度和长度。方向以道路网为基础，并与主要道路或高密度道路对齐，而宽度和长度则通过检查基础道路网和概率分布来确定。</p> <p>为了给每个模式分配一个值函数，我们通过考虑从原点到图案的路径上的平均速度和速度变化来计算目标的最短和最长到达时间。原则上，该机制应该使用路线图来识别最短路径，但这太昂贵而无法实时计算，因此我们将取而代之的是沿着从原点到图案前沿和远边的直线对地形进行采样。这是用来指导目标在这条路径上的可能速度。在实践中，如果直线路径穿过农村地区，那么目标要么必须使用较小的道路，要么偏离直接路径，以便开发更多的主要道路。无论哪种情况，目标到达目标的时间都比直达路径穿过郊区地形的时间要晚。另一方面，如果地形是城市，那么速度将受到交通法规和其他道路使用者的限制。最早和最晚的时间被用来建立一个价值函数，以这些作为奖励的限制（超出这个范围，模式将不被授予任何价值）。峰值回报率计算为分布中的概率密度的一个比例，该分布位于同一原点，边缘与搜索模式的边界重合。这表示搜索模式覆盖的时间段内总可用概率密度的替代项，尽管这显然是一个近似值。</p> <p>一旦初始状态准备好，我们就可以计划了。</p> <p><em>4.3 计划搜索</em>，我们使用的是一个版本的OPF，名为OPTIC，旨在随时执行成本提高的搜索。我们使用有时间限制的搜索(time-bounded search)（因为我们处于时间危急的情况下），时间限制在10秒以内。规划者通常会很容易地找到第一个解决方案，因为空计划已经是一个可行的解决方案，但是它将花费额外的时间通过向计划中添加更多的搜索模式，或者尝试不同的模式集合来改善这一点。搜索使用以分层方式稳定变化权重的带权重<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msup><mi>A</mi><mo>∗</mo></msup></mrow><annotation encoding="application/x-tex">A^*</annotation></semantics></math></span><span aria-hidden="true" class="katex-html"><span class="strut" style="height:0.688696em;"></span><span class="strut bottom" style="height:0.688696em;vertical-align:0em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">A</span><span class="vlist"><span style="top:-0.363em;margin-right:0.05em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle uncramped"><span class="mord">∗</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span>方案。以这种方式生成的计划是单调地改进的，因此最终生成的计划是我们选择执行的计划。</p> <p>计划通过一个简单的控制器，一个动作一个动作地发送。在计划执行结束时（包括一个微不足道的空计划），无人机进入等待模式，以固定的圆圈飞行。原则上，目前有两种方法可供选择，这取决于目标上次被发现的时间：花更多的时间来制定新计划，或者放弃搜索。在我们当前的实现中，我们总是假定在此时放弃搜索。</p> <p>我们使用OPTIC是因为它在产生第一个解决方案的速度非常快，并提供了一个随时改进的行为。我们目前没有利用OPTIC中的连续推理，因为我们使用问题的离散表示。我们发现，平均来说，OPTIC在每个问题实例的10秒窗口内生成大约6个计划，最后一个被选中执行。</p> <p><strong>第5节 搜索与跟踪仿真</strong>，为了评估我们计划的搜索方法的行为，我们开发了一个模拟程序。这是在与我们的工业合作者协商后建立的，旨在提供对问题的适当抽象的观点。<br>
关键的抽象是无人机的控制问题，我们假设这个问题的解决是为了给我们提供我们在搜索计划中利用的指挥水平。我们的调度员根据正在执行的飞行路径和搜索模式识别无人机的航路点和转弯圆，但我们不考虑飞行表面或高度的控制。我们也忽略了在模拟或规划中管理禁飞区的问题。</p> <p>模拟确定了作战区域，对于我们的实验来说，这是苏格兰大约100平方公里的一部分，格拉斯哥和爱丁堡大约界定了它的下角。地形类型是手工确定的，以及主要道路和农村次要道路的近似路网。图2显示了正在探索的地图，黑暗区域代表城市区域。可以看到观察者围绕着目标旋转。图中还显示了地图上突出显示的部分道路网。这些是观察者认为目标最有可能遵循的道路，规划问题实例将建立在假设这些道路覆盖的区域是搜索的最高回报区域的前提下。</p> <p><img src="https://s1.ax1x.com/2020/09/22/wXG2dI.png" alt="wXG2dI.png"></p> <p>仿真根据地形、速度和预期目标与实际目标位置之间的差异来确定目标定位和跟踪的成功率。目标遵循使用Google地图获取的路径，使用选定的（可配置的）起点和终点。这些信息还用于根据Google地图提出的路线中各航路点之间的距离和地形类型来决定适合目标的速度。</p> <p>仿真集成了计划器并显示了计划过程的各个阶段。图3和图4分别显示了初始状态和计划的示例。计划中使用的红色强度表示搜索模式的重复（更强烈的红色意味着更多的执行）。</p> <p><img src="https://s1.ax1x.com/2020/09/22/wXG4W8.png" alt="wXG4W8.png"></p> <p><img src="https://s1.ax1x.com/2020/09/22/wXGoQg.png" alt="wXGoQg.png"></p> <p>在初始状态描述中指定的未来时间点（计划开始后），螺旋将变为活动状态，选择该时间点是为了最大限度地提高拦截目标的机会。根据问题描述中提供的信息计算操作的持续时间，并且该操作的效果是在执行结束时通过一个步进函数来增加奖励。问题描述还提供了其他可能的操作，例如dosmalllawnower，它可以在不同的地方执行并提供不同的奖励。问题的目标是最大化回报，因为这使拦截目标的期望最大化。</p> <p>搜索模式倾向于放置在避开城市集中度最高的区域。这是因为在这些区域看到目标的概率要低得多，因此与这些区域的模式相关的回报也相应地低。规划者更喜欢在城市的另一边执行搜索模式，它预测目标将朝哪个方向前进。这项工作的成功取决于谨慎的时机。目标进入和离开一个模式的估计时间很难准确和快速地计算，这仍然是我们希望改进我们的性能的一个领域。</p> <p>仿真工具提供了各种交互机会，包括重新定向目标、重新定位观察者、加速和减慢模拟以及修改控制发现概率、飞行动力学、目标行为等的参数。选择这些值是为了广泛代表原型无人机的特征，正如我们的工业合作者向我们描述的那样。这些参数影响规划过程的方式之一是选择第4.2节所述的搜索区域扇区半径。基于观察者的速度和所考虑的扇区面积，我们使用20公里的搜索半径作为可能的搜索模式的外缘。这是一个可配置的参数，但不是我们在这个阶段已经尝试过的参数。</p> <p><strong>第6节 实验和结果</strong>，我们进行了实验来比较基于计划的搜索和选择作为评估基于计划的方法的好处的基准的固定策略。静态策略的工作原理如下：观察者跟踪目标，直到它看不见目标为止。它继续跟踪目标的预计位置大约3分钟。如果它没有重新发现目标，观察者就会执行一个固定的搜索模式序列。它首先在它失去目标的地方进行螺旋式搜索，然后在20公里的区域内执行大型割草机模式。</p> <p>我们使用基于计划的搜索配置，在计划和执行搜索计划之前，跟踪与静态策略相同时间段内目标的预测位置。我们比较了两个领域模型：一个使用非折扣奖励，另一个在搜索模式后使用折扣奖励。</p> <p>我们生成了20条路线，并在每条路线上进行了1000次模拟（模拟具有不确定性的定位模型和目标行为），针对3种策略（总共60000次运行）。仿真开始时目标未被发现，但在观察者的搜索弧内。在少量的运行中，观察者在很早的阶段就无法检测到目标。在这一阶段，我们的一个模拟不可能在这一阶段失败。在我们的分析中，我们对这些运行进行了折扣（低于0:5%）。</p> <p>我们用来评估策略的指标是：目标被跟踪到目的地的运行比例，观察者成功跟踪目标所花费的驾驶时间的比例（无论是否在这段时间内检测到目标），以及目标最终在这些磨合中丢失的时间它无法追踪到它的目的地。</p> <p>图5显示了目标被跟踪到目的地的运行比例。基于计划的搜索策略总是比其他策略更好，使用非折扣模型。它比折扣模型好的原因似乎是，当应用折扣时，规划者很难找到更好的计划，因此平均而言，解决方案比非折扣模型中的相应计划要短。总的来说，搜索比放弃任务要好，即使是在已经进行过搜索的地方。静态策略的总体成功率低于50%，而非折现模型的成功率高于60%。在一些情况下，静态策略似乎比基于计划的搜索做得更好，我们仍在调查原因。一般来说，在较短的路线上，基于计划的方法似乎表现得更差，这似乎是因为搜索模式偏向于假设目标正在驶向远方。</p> <p><strong>第7节 结论和今后的工作</strong>，我们提出了一种SAT的规划方法，将搜索问题视为一个规划问题，在该规划问题中，必须选择搜索模式并排序，以使重新发现目标的期望最大化。我们的结果表明，该方法是有前途的，当然优于静态搜索策略。通过使用这种方法，我们能够大规模地解决卫星导航问题——100平方公里的面积是搜索问题的一个重大挑战，远远超出了现有替代方案的能力。</p> <p>我们还需要考虑的问题包括禁飞区的影响，这些区域阻止无人机跟踪目标，但目标可能会在知情或不知情的情况下进入，以逃避追击。我们的报酬估计技术可以改进，以更好地考虑基础道路网，也可以制定和利用关于目标目的地的假设。我们发现，试图对奖励进行折扣的模型，以解释在搜索模式中未能找到目标会改变在同一区域内未来搜索中找到目标的条件概率，这仍然是对规划技术的挑战。当然，有可能为这个问题构建更专业的规划，但是使用通用规划器的一个重要好处是，我们可以很容易地修改搜索操作的集合，添加替代操作，或者扩展域模型。这种灵活性在原型设计和开发过程中特别重要。</p> <p>我们在使用基于计划的方法来解决搜索问题时看到的一个优势是，无人机的行为是可预测的，并且很容易理解。计划可以作为无人机和人类观察员之间的通用交流媒介，允许无人机和其他空中交通工具之间进行更安全的交互。</p> <hr class="footnotes-sep"> <section class="footnotes"><ol class="footnotes-list"><li id="fn1" class="footnote-item"><p>Nigam, N.: The multiple unmanned air vehicle persistent surveillance problem: a review. Machines 20(1), 13–72 (2014). <a href="#fnref1" class="footnote-backref">↩︎</a></p></li> <li id="fn2" class="footnote-item"><p>根据技术限制，这可以通过全局内存实现，也可以通过类似蚂蚁的stigmergic机制来实现，在这种机制中，信息存储在环境中。 <a href="#fnref2" class="footnote-backref">↩︎</a></p></li> <li id="fn3" class="footnote-item"><p>R. Korf, “Real-time heuristic search,” Artif. Intell., vol. 42, no. 2-3, pp. 189–211, 1990. <a href="#fnref3" class="footnote-backref">↩︎</a> <a href="#fnref3:1" class="footnote-backref">↩︎</a></p></li> <li id="fn4" class="footnote-item"><p>S. Koenig, B. Szymanski, and Y. Liu, “Efficient and inefficient ant coverage methods,” Ann. of Math. and Artif. Intell., vol. 31, no. 1-4, pp. 41–76, 2001. <a href="#fnref4" class="footnote-backref">↩︎</a></p></li> <li id="fn5" class="footnote-item"><p>G. Cannata and A. Sgorbissa, “A minimalist algorithm for multi-robot continuous coverage,” Robotics, IEEE Transactions on, vol. 27, no. 2,pp. 297–312, April 2011. <a href="#fnref5" class="footnote-backref">↩︎</a></p></li></ol></section></div> <footer class="page-edit"><!----> <div class="last-updated"><span class="prefix">更新于:</span> <span class="time">9/22/2020, 10:49:39 PM</span></div></footer> <div class="page-nav"><p class="inner"><span class="prev">
      ←
      <a href="/paper/2020Auguest.html" class="prev">
        2020年8月归档
      </a></span> <span class="next"><a href="/paper/technology.html">
        国防科技框架
      </a>
      →
    </span></p></div> </main></div><div class="global-ui"><!----></div></div>
    <script src="/assets/js/app.9e067b79.js" defer></script><script src="/assets/js/2.983eb755.js" defer></script><script src="/assets/js/52.4daa8322.js" defer></script>
  </body>
</html>
